我创建了一个imageview图像,但我希望将其缩放到不超过Android设备屏幕尺寸的五分之一宽度和六分之一。
这里我得到了屏幕的宽度和高度:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
这里我创建了我的imageview:
ImageView imageView = new ImageView(this);
imageView.setImageResource(icons[0]);
在这里我尝试扩展我的imageview:
imageView.getDrawable().setBounds(0, 0, width/5, height/6);
这最后一部分是坚持者。输入后我没有错误,我的程序正常运行 - 但图像没有缩放。基本上最后一行代码似乎没有效果,我不知道为什么,任何指针?
我的其余代码:
imageView.setAdjustViewBounds(true);
int mh = imageView.getDrawable().getIntrinsicHeight();
int mw = imageView.getDrawable().getIntrinsicWidth();
imageView.setX(width/2 - Math.round(width/5));
imageView.setY(height/2 - Math.round(height/6) - mActionBarSize);
relativeLayout.addView(imageView);
setContentView(relativeLayout);
答案 0 :(得分:1)
这样做:
imageView.getLayoutParams().height = (int) Math.round(height/6);
imageView.getLayoutParams().width = (int) Math.round(width/5);
imageView.requestLayout(); // If you're setting the height/width after the layout has already been 'laid out'
请参阅此link以了解有关requestLayout()的更多信息:
当某些内容发生变化而导致此视图的布局无效时,请调用此方法。这将安排视图树的布局传递。
但通常情况下,这种观点是自动调用它,你不必关心它......(所以对我来说,我用它来迫使视图做我想做的事情)
答案 1 :(得分:0)
使用此
ImageView imgView = (ImageView) findViewById(R.id.pageImage);
imgView.getLayoutParams().height = 100;
imgView.getLayoutParams().width = 100;