gpt4 book ai didi

android - 是否可以以编程方式创建可绘制对象并将其分配给 ImageView?

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

所以我试图以某种方式在代码中创建一个 Path 对象(无 XML)并将其绘制到 ImageView 中。问题是我想不出任何方法来以编程方式创建任何形状并将其显示在我的 ImageView 中。我可以轻松地将 ImageView 分配给一个 XML 资源,并且可以像这样正常工作:

imageView.setImageResource(R.drawable.resourcename);

这是 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<size
android:height="50dp"
android:width="50dp" />
<solid
android:color="#00f"
/>
</shape>

但是,如果我执行类似下面我认为应该可行的代码,它会编译并运行而不会出现错误,但什么也不会发生。我尝试创建一个简单的 RectShape 并使用 setImageDrawable 将 ImageView 分配给它。我在这里完全是在咆哮错误的树吗?我对 Android 编码非常陌生,所以我很可能离这里很远。我确实注意到我从来没有手动绘制矩形,我必须在某个地方这样做吗?我有点认为 ImageView 会处理它,但也许不会。如果您需要有关我的代码的更多信息,请告诉我。

RectShape rect = new RectShape();
rect.resize(50,50);
ShapeDrawable sdRect = new ShapeDrawable(rect);
sdRect.getPaint().setColor(Color.BLACK);
sdRect.getPaint().setStyle(Paint.Style.FILL);
imageView.setImageDrawable(sdRect);

最佳答案

我看了一眼 Drawable源,它看起来像 XML 标记 <shape>膨胀到 GradientDrawable不是ShapeDrawable .用这个替换你的代码:

GradientDrawable gd = new GradientDrawable();
gd.setShape(GradientDrawable.RECTANGLE);
gd.setColor(Color.BLACK);
imageView.setImageDrawable(gd);

关于android - 是否可以以编程方式创建可绘制对象并将其分配给 ImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26453478/

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