gpt4 book ai didi

android - ImageView setImageDrawable 不适用于 ShapeDrawable

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:23:53 28 4
gpt4 key购买 nike

我以编程方式创建了一个 ShapeDrawable 并希望在 ImageView 中显示它。如果我使用 ImageView.setImageDrawable(),我将无法看到 ShapeDrawable。如果我使用 ImageView.setBackground(),它会起作用。

为什么 ImageView.setImageDrawable() 不起作用?

来自布局文件的ImageView:

<ImageView
android:id="@+id/myImageView"
android:layout_width="100dp"
android:layout_height="200dp" />

Activity 的onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

int x = 0;
int y = 0;
int width = 300;
int height = 250;

ShapeDrawable drawable = new ShapeDrawable(new OvalShape());
drawable.getPaint().setColor(0xff74AC23);
drawable.setBounds(x, y, x + width, y + height);

ImageView iv = findViewById(R.id.myImageView);
iv.setBackground(drawable); // works
//iv.setImageDrawable(drawable); // doesn't work
}

最佳答案

要在 ImageView 中显示 ShapeDrawable,ShapeDrawable 应该定义高度和宽度。将以下属性添加到您的 ShapeDrawable。

drawable.setIntrinsicHeight(高度);
drawable.setIntrinsicWidth(宽度);

关于android - ImageView setImageDrawable 不适用于 ShapeDrawable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50398553/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com