作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个 ImageView
,其中 android:src
设置为 ShapedDrawable
,即白色圆圈。我想要的是在运行时为这个 ImageView
着色以响应某些事件。 imgView.setColorFilter
似乎是解决方案,但是在使用这个(尝试不同的参数)之后,图像变得不可见(我在屏幕上看不到它)。
如何解决这个问题?有没有更好的方法来制作色环?
最佳答案
好的,我快速玩了一下,发现你的圈子消失了。如果您没有准确描述 what 您尝试过,我假设您还没有尝试将颜色过滤器设置为 Drawable
本身吗? (与 ImageView
相反,它似乎只适用于 BitmapDrawable
s)。
以下语句对于以白色为初始颜色的 xml 声明的 ShapeDrawable
非常有效:
ImageView redCircle = (ImageView) findViewById(R.id.circle_red_imageview);
ImageView greenCircle = (ImageView) findViewById(R.id.circle_green_imageview);
ImageView blueCircle = (ImageView) findViewById(R.id.circle_blue_imageview);
// we can create the color values in different ways:
redCircle.getDrawable().setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY );
greenCircle.getDrawable().setColorFilter(0xff00ff00, PorterDuff.Mode.MULTIPLY );
blueCircle.getDrawable().setColorFilter(getResources().getColor(R.color.blue), PorterDuff.Mode.MULTIPLY );
ShapeDrawable
完整性:(我在 ImageView
上设置大小,见下文)
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
<solid android:color="@android:color/white" />
</shape>
以 ImageView
之一为例:
<ImageView
android:id="@+id/circle_red_imageview"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="5dp"
android:src="@drawable/circle_white" />
视觉效果:
关于android - 使用 ShapedDrawable 将 ColorFilter 应用于 ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10114420/
我有一个 ImageView,其中 android:src 设置为 ShapedDrawable,即白色圆圈。我想要的是在运行时为这个 ImageView 着色以响应某些事件。 imgView.set
我是一名优秀的程序员,十分优秀!