设置圆形图片

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.RoundCornerI
import 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值