设置圆形图片

来源:互联网 发布:为此网络fips 编辑:程序博客网 时间:2024/05/16 08:36

1.圆形图片布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <com.bwei.jishixiong.makingfriends4.Base.activity.CircularImage        android:id="@+id/icon"        android:layout_width="35dp"        android:layout_height="35dp"        android:layout_marginTop="5dp"        android:scaleType="centerCrop"        android:src="@drawable/ll_img2" /></LinearLayout>

2.CircularImage

package com.bwei.jishixiong.makingfriends4.Base.activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.RectF;import android.util.AttributeSet;public class CircularImage extends MaskedImage {      public CircularImage(Context paramContext) {          super(paramContext);      }        public CircularImage(Context paramContext, AttributeSet paramAttributeSet) {          super(paramContext, paramAttributeSet);      }        public CircularImage(Context paramContext, AttributeSet paramAttributeSet, int paramInt) {          super(paramContext, paramAttributeSet, paramInt);      }        public Bitmap createMask() {          int i = getWidth();          int j = getHeight();          Bitmap.Config localConfig = Bitmap.Config.ARGB_8888;          Bitmap localBitmap = Bitmap.createBitmap(i, j, localConfig);          Canvas localCanvas = new Canvas(localBitmap);          Paint localPaint = new Paint(1);          localPaint.setColor(-16777216);          float f1 = getWidth();          float f2 = getHeight();          RectF localRectF = new RectF(0.0F, 0.0F, f1, f2);          localCanvas.drawOval(localRectF, localPaint);          return localBitmap;      }  }

3.MaskedImage类


package com.bwei.jishixiong.makingfriends4.Base.activity;//com.bwie.text.RoundCornerIimport android.annotation.SuppressLint;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.graphics.Xfermode;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.widget.ImageView;public abstract  class MaskedImage  extends ImageView {    private static final Xfermode MASK_XFERMODE;         private Bitmap mask;         private Paint paint;              static {             PorterDuff.Mode localMode = PorterDuff.Mode.DST_IN;             MASK_XFERMODE = new PorterDuffXfermode(localMode);         }              public MaskedImage(Context paramContext) {             super(paramContext);         }              public MaskedImage(Context paramContext, AttributeSet paramAttributeSet) {             super(paramContext, paramAttributeSet);         }              public MaskedImage(Context paramContext, AttributeSet paramAttributeSet, int paramInt) {             super(paramContext, paramAttributeSet, paramInt);         }              public abstract Bitmap createMask();              @SuppressLint("DrawAllocation")      protected void onDraw(Canvas paramCanvas) {             Drawable localDrawable = getDrawable();             if (localDrawable == null)                 return;             try {                 if (this.paint == null) {                     Paint localPaint1 = new Paint();                     this.paint = localPaint1;                     this.paint.setFilterBitmap(false);                     Paint localPaint2 = this.paint;                     Xfermode localXfermode1 = MASK_XFERMODE;                     @SuppressWarnings("unused")                     Xfermode localXfermode2 = localPaint2.setXfermode(localXfermode1);                 }                 float f1 = getWidth();                 float f2 = getHeight();                 int i = paramCanvas.saveLayer(0.0F, 0.0F, f1, f2, null, 31);                 int j = getWidth();                 int k = getHeight();                 localDrawable.setBounds(0, 0, j, k);                 localDrawable.draw(paramCanvas);                 if ((this.mask == null) || (this.mask.isRecycled())) {                     Bitmap localBitmap1 = createMask();                     this.mask = localBitmap1;                 }                 Bitmap localBitmap2 = this.mask;                 Paint localPaint3 = this.paint;                 paramCanvas.drawBitmap(localBitmap2, 0.0F, 0.0F, localPaint3);                 paramCanvas.restoreToCount(i);                 return;             } catch (Exception localException) {                 StringBuilder localStringBuilder = new StringBuilder()                         .append("Attempting to draw with recycled bitmap. View ID = ");                 System.out.println("localStringBuilder=="+localStringBuilder);             }         }  }

4.适配器类

package com.bwei.jishixiong.makingfriends4.Base.adapter;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;import com.bwei.jishixiong.makingfriends4.Base.bean.Reward;import com.bwei.jishixiong.makingfriends4.R;import java.util.ArrayList;import java.util.List;/** * Created by jishixiong on 2016/5/17. */public class MyFindLivingGridViewAdapter extends BaseAdapter {    List<Reward> nlist = new ArrayList<Reward>();    Context context;    int count;    public MyFindLivingGridViewAdapter(Context context) {        super();        this.context=context;    }    public void addrest(List<Reward> nlist){        this.nlist.clear();        this.nlist.addAll(nlist);        this.notifyDataSetChanged();    }    @Override    public int getCount() {        return nlist.size();    }    @Override    public Object getItem(int position) {        return null;    }    @Override    public long getItemId(int position) {        return 0;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        VoidHolder holder;        if(convertView==null){            holder=new VoidHolder();            convertView=View.inflate(context, R.layout.find_listview_livingarea_gridview_item,null);            holder.icon=(ImageView) convertView.findViewById(R.id.icon);            convertView.setTag(holder);        }else{            holder = (VoidHolder) convertView.getTag();        }        holder.icon.setImageResource(R.drawable.ll_img2);        return convertView;    }    class VoidHolder{        ImageView icon;    }}


1 0
原创粉丝点击