如何动态设置ImageView的宽度高度以及位置

如何动态设置ImageView的宽度高度以及位置,第1张

动态的获取和设置ImageView的宽度和高度,参考实例如下:

import android.app.Activity

import android.os.Bundle

import android.util.Log

import android.view.ViewGroup.LayoutParams

import android.widget.ImageView

public class PicTest extends Activity {

private final String TAG = "Pictrue Test!!!"

private ImageView image

private int height = 0

private int width = 0

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.main)

image = (ImageView)findViewById(R.id.ImageView01)

//height = image.getHeight()

//width = image.getWidth()

//Log.d(TAG, "height: " + height)

//Log.d(TAG, "width: " + width)

LayoutParams para

para = image.getLayoutParams()

Log.d(TAG, "layout height0: " + para.height)

Log.d(TAG, "layout width0: " + para.width)

para.height = 300

para.width = 300

image.setLayoutParams(para)

Log.d(TAG, "layout height: " + para.height)

Log.d(TAG, "layout width: " + para.width)

}

}

iOS切圆角的方式

第一种方法:通过设置layer的属性

最简单的一种,但是很影响性能,一般在正常的开发中使用很少.

离屏渲染,耗费性能但是比较简单

//只需要设置layer层的两个属性

//设置圆角

imageView.layer.cornerRadius = imageView.frame.size.width / 2

//将多余的部分切掉

imageView.layer.masksToBounds = YES

[self.view addSubview:imageView]

第二种方法:使用贝塞尔曲线UIBezierPath和Core Graphics框架画出一个圆角

性能最高,配合缓存和异步加载最适合在cell上使用

第三种方法:使用CAShapeLayer和UIBezierPath设置圆角

与第一种方法的底层原理一致,但效率稍高一下,常用于通用控件中

会导致离屏渲染,cell上不可用

首先需要导入<AVFoundation/AVFoundation.h>

@interface ViewController ()

@end

@implementation ViewController

使用位图(Bitmap)再重新绘制遍

//原位图

Bitmap btm1 = BitmapFactory.decodeResource(Main.this.getResources(), R.drawable.hh)

BitmapDrawable bd1=BitmapDrawable(btm1)

imageView.setBackgroundDrawable(bd1)

放大后 滑动时计算 图片的边是否在屏幕外,如果在屏幕外就可移动,比如 向上滑动,是想看图片下面的部分,此时计算图片的底边是否在屏幕外,如果是,就可以向上移动图片。

Scaletype的设置的方式包括:

1、在layout xml中定义android:scaleType="CENTER"

2、或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER)

扩展资料:

根据位深度,可将位图分为1、4、8、16、24及32位图像等。每个像素使用的信息位数越多,可用的颜色就越多,颜色表现就越逼真,相应的数据量越大。

例如,位深度为 1 的像素位图只有两个可能的值(黑色和白色),所以又称为二值位图。位深度为 8 的图像有 2^8(即 256)个可能的值。位深度为 8 的灰度模式图像有 256 个可能的灰色值。

RGB图像由三个颜色通道组成。8 位/通道的 RGB 图像中的每个通道有 256 个可能的值,这意味着该图像有 1600 万个以上可能的颜色值。

有时将带有 8 位/通道 (bpc) 的 RGB 图像称作 24 位图像(8 位 x 3 通道 = 24 位数据/像素)。通常将使用24位RGB组合数据位表示的的位图称为真彩色位图。

参考资料来源:百度百科-Bitmap


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11378724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存