我创建了一个小应用程序,它会在点击时循环显示ImageView的有色图像。
它适用于布局文件中设置的图像,但是从下面的代码设置图像时它不起作用。
任何帮助表示感谢。
public class MainActivity extends Activity {
private ImageView mPic;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPic = (ImageView) findViewById(R.id.pic);
mPic.setBackgroundResource(R.drawable.msh);
mPic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Random random=new Random();
ColorFilter cf = new PorterDuffColorFilter(Color.argb(192, random.nextInt(255), random.nextInt(255), random.nextInt(255)),Mode.SRC_ATOP);
mPic.setColorFilter(cf);
}
});
}
}
答案 0 :(得分:4)
滤镜适用于ImageView
内容,而不是背景。使用ImageView#setImageResource(int resId)设置内容并应用彩色滤镜。
如果您需要将ColoFilter
添加到ImageView
的背景,可以尝试mPic.getBackground().setColorFilter()
之类的内容(假设getBackground()
返回非空值)。< / p>