gpt4 book ai didi

android - ImageView - 在其聚焦状态的顶部绘制半透明颜色?

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

我有一个 ImageView,我想要一个选择器,以便当用户单击或以其他方式获得焦点时,在 ImageView 内容的顶部绘制半透明颜色。我不确定这是否适用于选择器(我过去一直用静态可绘制对象定义它)。

但基本上我有一个 ListView ,每行都有 imageview 实例,并且想做类似的事情:

ImageView iv = ...;
iv.setBitmapDrawable(bitmapLoadedFromInternets()); // dynamic content
iv.setClickStateOverlayColor(0x33ff0000); // ?

通常 ImageView 仅通过 setBitmapDrawable() 获取单个可绘制对象,但选择器 (1) 为不同的点击状态换出可绘制对象,而我只想绘制一个颜色叠加层,并且 (2) 关闭状态是动态的位图,所以我无法从选择器定义中引用它。

谢谢

最佳答案

如果您创建自己的 ImageView 子类,您可以很容易地做到这一点。使用方法是setColorFilter .像这样的事情会做到这一点:

public class ImageView extends android.widget.ImageView
{
public ImageView(Context context)
{
super(context);
}

public ImageView(Context context, AttributeSet attrs)
{
super(context, attrs);
}

public ImageView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}

@Override
public boolean onTouchEvent(MotionEvent event)
{
if(event.getAction() == MotionEvent.ACTION_DOWN && isEnabled())
setColorFilter(0x33ff0000, PorterDuff.Mode.MULTIPLY); //your color here

if(event.getAction() == MotionEvent.ACTION_UP)
setColorFilter(null);

return super.onTouchEvent(event);
}
}

然后您可以在 XML 布局中使用它,只需像 my.package.ImageView 而不仅仅是 ImageView 一样完全限定它。

关于android - ImageView - 在其聚焦状态的顶部绘制半透明颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10724198/

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