我希望自定义提醒对话框中的imageview为黑白色。 正确的方法(在重新研究之后)是......
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(0);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
imageview.setColorFilter(filter);
但是,当我的imageview是我的自定义提醒对话框时,这不起作用。
这是我的代码:
private void showDialogForTodayItemClicked(){
// custom dialog
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.dialog_daily_food_clicked);
dialog.setTitle("Title...");
ImageView imageview = (ImageView) dialog.findViewById(R.id.image_view_dialog_background_today);
imageview.setBackgroundResource(R.drawable.avocados_small);
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(0);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
imageview.setColorFilter(filter);
dialog.show();
}
以下是对话框的xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="300dp"
android:id="@+id/dialog_daily_food_relative_layout"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#ffffff"></LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#81383838"></LinearLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/image_view_dialog_background_today"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:textColor="#ffffff"
android:layout_margin="20dp"
android:textStyle="bold"
android:text="MORE INFO"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DONE"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:textColor="#ffffff"
android:layout_alignParentRight="true"
android:textStyle="bold"
android:layout_margin="20dp"/>
</RelativeLayout>
非常感谢所有人。
答案 0 :(得分:0)
答案是,当我使用它时,它起作用了:
imageview.setImageResource(currentItem.getImage());
(而不是setBackgroundImage)。