android代码中获取view的宽高方式
2016-12-15 23:33
267 查看
通过代码方式获取view的宽高方式记录
方式1:
img = (ImageView) findViewById(R.id.iv_img);
int w = View.MeasureSpec.makeMeasureSpec(0,
View.MeasureSpec.UNSPECIFIED);
int h = View.MeasureSpec.makeMeasureSpec(0,
View.MeasureSpec.UNSPECIFIED);
img.measure(w, h);
int height = img.getMeasuredHeight();
int width = img.getMeasuredWidth();方式2:
ViewTreeObserver vto = imageView.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
vto.removeOnPreDrawListener(this);
int height = imageView.getMeasuredHeight();
int width = imageView.getMeasuredWidth();
return true;
}
}); 注册一个ViewTreeObserver的监听回调,该回调专门监听绘图的,所以可以获取测量值了,同时,我们在每次监听前remove前一次的监听,避免重复监听。
方式3:
ViewTreeObserver vto = imageView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
imageView.getHeight();
imageView.getWidth();
}
});全局的布局改变监听器,优先最推荐使用
方式1:
img = (ImageView) findViewById(R.id.iv_img);
int w = View.MeasureSpec.makeMeasureSpec(0,
View.MeasureSpec.UNSPECIFIED);
int h = View.MeasureSpec.makeMeasureSpec(0,
View.MeasureSpec.UNSPECIFIED);
img.measure(w, h);
int height = img.getMeasuredHeight();
int width = img.getMeasuredWidth();方式2:
ViewTreeObserver vto = imageView.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
vto.removeOnPreDrawListener(this);
int height = imageView.getMeasuredHeight();
int width = imageView.getMeasuredWidth();
return true;
}
}); 注册一个ViewTreeObserver的监听回调,该回调专门监听绘图的,所以可以获取测量值了,同时,我们在每次监听前remove前一次的监听,避免重复监听。
方式3:
ViewTreeObserver vto = imageView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
imageView.getHeight();
imageView.getWidth();
}
});全局的布局改变监听器,优先最推荐使用
相关文章推荐
- Android中通过view方式获取当前Activity的屏幕截图实现方法
- 4种Android获取View宽高的方式
- Android应用内 代码截屏(获取View快照)和 禁止截屏
- Android - 代码的组织方式,splash界面,获取应用的版本号,获取服务器版本号,下载安装apk,跑马灯效果
- Android 获取 View 宽高的常用正确方式,避免为零
- android网络获取图片并保存在本地和获取手机SD卡中的图片显示到ImageView上及利用代码删除图片
- Android之解决远程拍照不打开activity用其它方式获取surfaceView
- android在代码中获取view宽/高为0解决方法
- Android 自定义View中drawText获取text宽度的三种方式
- android webview获取html代码和根据id获取value
- android post方式传递参数并获取返回数据代码
- view--4种Android获取View宽高的方式
- Android获取View宽高的几种方式
- Android中WebView的JavaScript代码和本地代码交互的三种方式
- Android -- 样式和主题,用代码方式编写UI,用WebView通过html开发界面
- Android获取View宽高的几种方式
- Android 在代码中控制View的填充方式和宽度、高度
- Android获取View的高宽的方式
- Android 获取 View 宽高的常用正确方式,避免为零
- Android中WebView的JavaScript代码和本地代码交互的三种方式