自定义圆

原创 2016年06月01日 11:18:22

public class RoundImageView extends ImageView {

    public RoundImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

    public RoundImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    public RoundImageView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }
    @Override  
    protected void onDraw(Canvas canvas) {  
      
        Drawable drawable = getDrawable();  
      
        if (drawable == null) {  
            return;  
        }  
      
        if (getWidth() == 0 || getHeight() == 0) {  
            return;   
        }  
          
        Bitmap b =  ((BitmapDrawable)drawable).getBitmap();  
        
        if(null == b)  
        {  
            return;  
        }  
          
        Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true);  
      
        int w = getWidth(), h = getHeight();  
      
      
        Bitmap roundBitmap =  getCroppedBitmap(bitmap, w);  
        canvas.drawBitmap(roundBitmap, 0,0, null);  
      
    }  
      
    public static Bitmap getCroppedBitmap(Bitmap bmp, int radius) {  
        Bitmap sbmp;  
        if(bmp.getWidth() != radius || bmp.getHeight() != radius)  
            sbmp = Bitmap.createScaledBitmap(bmp, radius, radius, false);  
        else  
            sbmp = bmp;  
        Bitmap output = Bitmap.createBitmap(sbmp.getWidth(),  
                sbmp.getHeight(), Config.ARGB_8888);  
        Canvas canvas = new Canvas(output);  
      
        final int color = 0xffa19774;  
        final Paint paint = new Paint();  
        final Rect rect = new Rect(0, 0, sbmp.getWidth(), sbmp.getHeight());  
      
        paint.setAntiAlias(true);  
        paint.setFilterBitmap(true);  
        paint.setDither(true);  
        canvas.drawARGB(0, 0, 0, 0);  
        paint.setColor(Color.parseColor("#BAB399"));  
        canvas.drawCircle(sbmp.getWidth() / 2+0.7f, sbmp.getHeight() / 2+0.7f,  
                sbmp.getWidth() / 2+0.1f, paint);  
        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));  
        canvas.drawBitmap(sbmp, rect, rect, paint);  
      
      
                return output;  
    }  
}

自定义View实心圆和圆环

1.1、添加在vules中的Color中
  • Monster_czy
  • Monster_czy
  • 2017年06月11日 21:59
  • 441

Android 自定义view画圆

今天自定义view画圆,使用到的就是Android也给我们提供了这两样东西:Paint和Canvas,由于在代码中都有对使用方法的介绍 我也不多说,来看自定义View的代码: package co...
  • haiwei15
  • haiwei15
  • 2016年09月13日 15:25
  • 7025

android 自定义view 圆形可移动

public class Mycircle2 extends View { private Paint paint; private int rawX; private in...
  • XiaoZhuang__
  • XiaoZhuang__
  • 2017年12月26日 19:51
  • 61

自定义view画圆,并且圆可以随意拖动

主要分为两大步   首先 自己写一个类继承view:类里面写逻辑代码,重写三个参数,实例化一个画笔,重写ondrow();方法 ,重写onTouchevent()方法   第二步在布局中引用 ...
  • zhaoxiaoshan_3
  • zhaoxiaoshan_3
  • 2017年06月07日 15:17
  • 365

自定义View学习-绘制一个简单的圆

想把平时学到的关于自定义View的一些东西记录下来,从最基本的慢慢往难学吧。这篇是简单的不能再简单的绘制,算是一个入门吧。做了两个,一个是就显示圆。还有一个是绘制的圆根据手指滑动的位置来移动。并且圆的...
  • wangbin_learn
  • wangbin_learn
  • 2016年04月26日 16:44
  • 1611

Android 自定义View实现圆形环绕效果

之前项目中需要实现一个四周环绕中心圆形头像的效果,感觉还是自定义比较方便,于是就自己封装了一个控件去实现。先贴张图显示最终效果。...
  • ZuoZuoShengHen
  • ZuoZuoShengHen
  • 2017年07月25日 17:23
  • 419

Android 自定义圆形图片和文本

Android自定义圆形图片和文本 http://blog.csdn.net/zapperbot/article/details/46872923?ref=myread(转) ...
  • u010507199
  • u010507199
  • 2015年07月16日 09:44
  • 1341

自定义view 画一个圆 实现单点拖动

package com.zhengyang.ballmovedemo; import android.content.Context; import android.graphics.Canvas;...
  • oceanisblue
  • oceanisblue
  • 2016年06月08日 11:06
  • 413

自定义圆形图像

package de.hdodenhof.circleimageview; import edu.njupt.zhb.main.R; import android.conten...
  • LKX7809139
  • LKX7809139
  • 2016年08月13日 13:06
  • 134

自定义view画圆加属性动画

自定义view画圆加属性动画(从左上角到右下角):先看自定义view画的圆: import android.content.Context; import android.graphics.Canva...
  • gss8023
  • gss8023
  • 2017年10月25日 14:08
  • 117
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义圆
举报原因:
原因补充:

(最多只允许输入30个字)