这让我发疯了。我希望能够以编程方式调整xml矢量可绘制图标的大小,以便在ImageView中使用它。
这是我到目前为止所做的不起作用
Drawable drawable = ResourcesCompat.getDrawable(getResources(),R.drawable.ic_marker,null);
drawable.setBounds(0,0,512,512);
imageVenue.setImageDrawable(drawable);
矢量图标ic_marker
未调整大小。它只是每次都保留硬编码的宽度和高度值。
有什么想法吗?
答案 0 :(得分:4)
您可以通过编程方式更改imageview的宽度和高度。由于矢量绘图将保留图像的原始质量,这将使所需的输出发生。
ImageView iv = (ImageView) findViewById(R.id.imgview);
int width = 60;
int height = 60;
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width,height);
iv.setLayoutParams(params);
答案 1 :(得分:0)
我目前面临同样的问题。
我正在尝试这样的事情,因为ViewParent实际上已经明确设置了高度,所以我使用match_parent并设置了边距。它不会一直工作,因为我只是在RecyclerView的一个视图中使用这个视图...而且我注意到有时我看到带有工件的放大版本,有时是全尺寸,有时有边距,而且更大边距......但如果你在更简单的场景中使用它,它仍然可能适合你。
mImageViewFront.setImageDrawable(vectorDrawable);
final int paddingLR = mImageViewFront.getWidth() / 4;
final int paddingTB = mImageViewFront.getHeight() / 4;
LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
params.setMargins(paddingLR, paddingTB, paddingLR, paddingTB);
mImageViewFront.setLayoutParams(params);