• 圆形图片


    imageview一般情况下为矩形,如果需要现实为圆角或者圆形还需要进行一番处理,这里自定义了一个imageview,可以修改角度来显示圆角图片

      1 import android.content.Context;
      2 import android.graphics.Bitmap;
      3 import android.graphics.Bitmap.Config;
      4 import android.graphics.Canvas;
      5 import android.graphics.Paint;
      6 import android.graphics.PorterDuff.Mode;
      7 import android.graphics.PorterDuffXfermode;
      8 import android.graphics.Rect;
      9 import android.graphics.RectF;
     10 import android.util.AttributeSet;
     11 import android.widget.ImageView;
     12 
     13 /**
     14 *  类名 CircleImageView
     15 *  @author 王洪贺<br/>
     16 *    圆形图像类
     17 *    创建日期 2014年7月14日
     18 */
     19 public class CircleImageView extends ImageView {
     20 
     21     /**默认显示的图像*/
     22     private int defaultImageRes = R.drawable.no_image;
     23     /**网络图像地址*/
     24     private String url;
     25     /**上下文*/
     26     private Context mContext;
     27 
     28     public CircleImageView(Context context) {
     29         super(context);
     30         init(context);
     31     }
     32 
     33     public CircleImageView(Context context, AttributeSet attrs, int defStyle) {
     34         super(context, attrs, defStyle);
     35         init(context);
     36     }
     37 
     38     public CircleImageView(Context context, AttributeSet attrs) {
     39         super(context, attrs);
     40         init(context);
     41     }
     42 
     43     public void init(Context context) {
     44         this.mContext = context;
     45     }
     46 
     47     public void setDefault(int resId) {
     48         defaultImageRes = resId;
     49     }
     50 
     51     public void setUrl(String imageUrl) {
     52         url = imageUrl;
     53     }
     54 
     55     @Override
     56     public void setImageBitmap(Bitmap bm) {
     57         if (bm != null) {
     58             bm = toRoundBitmap(bm);
     59             // bitmap = bm;
     60         }
     61         super.setImageBitmap(bm);
     62     }
     63 
     64     @Override
     65     public void setImageResource(int resId) {
     66         super.setImageResource(resId);
     67 
     68     }
     69 
     70     /**
     71      * 转换图片成圆形
     72      * 
     73      * @param bitmap
     74      *            传入Bitmap对象
     75      * @return
     76      */
     77     public Bitmap toRoundBitmap(Bitmap bitmap) {
     78 
     79         Bitmap output = Bitmap
     80                 .createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
     81         Canvas canvas = new Canvas(output);
     82 
     83         final int color = 0xff424242;
     84         final Paint paint = new Paint();
     85         final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
     86         final RectF rectF = new RectF(rect);
     87         final float roundPx = 90;
     88 
     89         paint.setAntiAlias(true);
     90         canvas.drawARGB(0, 0, 0, 0);
     91         paint.setColor(color);
     92         canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
     93 
     94         paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
     95         canvas.drawBitmap(bitmap, rect, rect, paint);
     96 
     97         return output;
     98     }
     99 
    100 }
  • 相关阅读:
    Python 魔法方法
    使用PHP7来批量更新MangoDB数据
    git 小乌龟安装教程
    webpack初学者(1)
    移动端与PC端的触屏事件
    解决onclick事件的300ms延时问题
    尺寸单位em,rem,vh,vw
    ngRoute 与ui.router区别
    angular.js的依赖注入解析
    ionic的基础学习(第一篇)
  • 原文地址:https://www.cnblogs.com/dongweiq/p/3906618.html
Copyright © 2020-2023  润新知