Android 如何在ListView中使用图像掩码

Android 如何在ListView中使用图像掩码,android,listview,mask,Android,Listview,Mask,我有一个活动,它使用listView列出数据及其行的图像 String[] from = {"subject","img","description","id"}; int[] to = {R.id.tv_subject,R.id.iv_pic, R.id.tv_details, R.id.hide_id}; SimpleAdapter adapter = new SimpleAdapter(ListViewActivity.this,searchRes

我有一个活动,它使用listView列出数据及其行的图像

   String[] from = {"subject","img","description","id"};
        int[] to = {R.id.tv_subject,R.id.iv_pic, R.id.tv_details, R.id.hide_id};

       SimpleAdapter adapter = new   SimpleAdapter(ListViewActivity.this,searchResult,R.layout.listview, from, to);
        mListView.setAdapter(adapter);
My ListView.xml是:

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="#ffffff"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView 
    android:id="@+id/iv_pic"
    android:layout_gravity="left"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5dp"/>
<TextView 
    android:textColor="#000000"
    android:layout_gravity="center"
    android:id="@+id/tv_subject"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"     
    android:textSize="15sp"   
    android:textStyle="bold" />

   <LinearLayout 
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="horizontal">
   <TextView 

    android:textColor="#000000"
    android:layout_gravity="right"
    android:paddingRight="5dp"
    android:id="@+id/tv_details"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

  <TextView
    android:visibility="gone"
    android:id="@+id/hide_id"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>
 </LinearLayout>

我希望在listview中显示每个带有掩码的图像如果listview

每个图像都在一行中,为了自定义listview的膨胀,例如设置掩码,您必须对已创建的SimpleAdapter进行子类化,并覆盖getViewint位置、View convertView、ViewGroup父方法

在该方法中,您可以检查单击的视图,并适当地将其充气,设置所需的ImageView和TextView。在该方法中,您还将填充与正在膨胀的视图相对应的数据

查看教程了解更多信息

  ImageView mImageView= (ImageView)findViewById(R.id.img);
    ImageView mImageView1= (ImageView)findViewById(R.id.img1);
    Bitmap original = BitmapFactory.decodeResource(getResources(),R.drawable.c);
    Bitmap mask = BitmapFactory.decodeResource(getResources(),R.drawable.poster);
    Bitmap result = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Config.ARGB_8888);
    Canvas mCanvas = new Canvas(result);
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setXfermode( new PorterDuffXfermode(Mode.DST_IN));
    mCanvas.drawBitmap(original, 0, 0, null);
    mCanvas.drawBitmap(mask, 0, 0, paint);
    paint.setXfermode(null);
    mImageView.setImageBitmap(result);