我如何设置一个ImageView的宽度和高度编程?
当前回答
这可能太迟了,但为了其他人有同样的问题,设置ImageView的高度:
imageView.getLayoutParams().height = 20;
重要的。如果你在布局已经“布局”之后设置高度,确保你还调用:
imageView.requestLayout();
其他回答
如果你需要将你的宽度或高度设置为match_parent(与其父类一样大)或wrap_content(大到足以适合它自己的内部内容),那么ViewGroup。LayoutParams有两个常量:
imageView.setLayoutParams(
new ViewGroup.LayoutParams(
// or ViewGroup.LayoutParams.WRAP_CONTENT
ViewGroup.LayoutParams.MATCH_PARENT,
// or ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.MATCH_PARENT ) );
或者你也可以像哈基姆·扎伊德的回答那样
imageView.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
//...
我用像素和dp做了这个。
private int dimensionInPixel = 200;
如何按像素设置:
view.getLayoutParams().height = dimensionInPixel;
view.getLayoutParams().width = dimensionInPixel;
view.requestLayout();
dp设置方法:
int dimensionInDp = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dimensionInPixel, getResources().getDisplayMetrics());
view.getLayoutParams().height = dimensionInDp;
view.getLayoutParams().width = dimensionInDp;
view.requestLayout();
希望这对你有所帮助。
科特林
val density = Resources.getSystem().displayMetrics.density
view.layoutParams.height = 20 * density.toInt()
int newHeight = 150;
int newWidth = 150;
holder.iv_arrow.requestLayout();
holder.iv_arrow.getLayoutParams().height = newHeight;
holder.iv_arrow.getLayoutParams().width = newWidth;
holder.iv_arrow.setScaleType(ImageView.ScaleType.FIT_XY);
holder.iv_arrow.setImageResource(R.drawable.video_menu);
这可能太迟了,但为了其他人有同样的问题,设置ImageView的高度:
imageView.getLayoutParams().height = 20;
重要的。如果你在布局已经“布局”之后设置高度,确保你还调用:
imageView.requestLayout();
推荐文章
- 如何在Spring中定义List bean ?
- 将Set<T>转换为List<T>的最简洁的方法
- 在JavaScript中,什么相当于Java的Thread.sleep() ?
- Android选择器和文本颜色
- 使用Java重命名文件
- URL从Java中的类路径加载资源
- .toArray(new MyClass[0]) or .toArray(new MyClass[myList.size()])?
- Hibernate中不同的保存方法之间有什么区别?
- 视图绑定-我如何获得包含布局的绑定?
- 在Android Studio中改变矢量资产的填充颜色
- 在构建中编写注释的语法是什么?gradle文件?
- 如何以编程方式添加按钮色调
- 用Android Studio进行调试永远停留在“等待调试器”状态
- Java 8流和数组操作
- Java Regex捕获组