Android如何以编程方式调整(缩放)xml矢量图标

Tha*_*man 7 java android android-layout android-studio android-vectordrawable

这真让我抓狂.我希望能够以编程方式调整xml矢量可绘制图标的大小,以便在ImageView中使用它.

这是我到目前为止所做的不起作用的

Drawable drawable = ResourcesCompat.getDrawable(getResources(),R.drawable.ic_marker,null);
drawable.setBounds(0,0,512,512);
imageVenue.setImageDrawable(drawable);
Run Code Online (Sandbox Code Playgroud)

矢量图标ic_marker未调整大小.它只是每次都保持硬编码的宽度和高度值.

有任何想法吗?

Far*_*ihi 3

您可以通过编程方式更改图像视图的宽度和高度。由于矢量绘图将保留图像的原始质量,这将使所需的输出发生。

ImageView iv = (ImageView) findViewById(R.id.imgview);
int width = 60;
int height = 60;
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width,height);
iv.setLayoutParams(params);
Run Code Online (Sandbox Code Playgroud)

  • 是的,我知道,但我的重点是使用矢量绘图,这样我就不需要具有不同大小的 png 文件 (6认同)
  • 谢谢。虽然这个解决方案效果很好,但我希望有一种替代方案,可以直接缩放我的可绘制对象,然后将其放置在 imageview 中,而不会弄乱 imageview 参数本身。我要对此进行研究,如果这不可能达到我想要的方式,我会接受你的答案 (4认同)