<?xml version="1.0" encoding="utf-8"?>
package com.zdsoft.circleimageview;
import android.content.context;
import android.content.res.typedarray;
import android.graphics.bitmap;
import android.graphics.bitmapfactory;
import android.graphics.canvas;
import android.graphics.paint;
import android.graphics.porterduff;
import android.graphics.porterduffxfermode;
import android.graphics.rect;
import android.util.attributeset;
import android.view.view;
/** * created by administrator on 2017/1/11.
*/public class circleimageview extends view
public circleimageview(context context, attributeset attrs)
public circleimageview(context context, attributeset attrs, int defstyleattr)
/*** 接收屬性值
** @param context
* @param attrs
*/private void init(context context, attributeset attrs)
}@override
protected void ondraw(canvas canvas) else
bitmap output = bitmap.createbitmap(sfbitmap.getwidth(), sfbitmap.getheight(), bitmap.config.argb_8888);
//3、例項化新的一張畫布canvas
canvas canvas_new = new canvas(output);
//4、對畫布進行裁剪
paint paint = new paint();
paint.setantialias(true);//抗鋸齒
paint.setfilterbitmap(true);//抗鋸齒,對位圖進行濾波處理
paint.setdither(true);//設定防抖動,影象比較柔和
canvas_new.drawcircle(sfbitmap.getwidth() / 2, sfbitmap.getwidth() / 2, sfbitmap.getwidth() / 2, paint);
//5、核心部分,設定兩張的相交模式,在這裡就是上面繪製的circle和下面繪製的bitmap
rect rect = new rect(0, 0, sfbitmap.getwidth(), sfbitmap.getwidth());
paint.setxfermode(new porterduffxfermode(porterduff.mode.src_in));//取兩層繪製交集,顯示上層
canvas_new.drawbitmap(sfbitmap, rect, rect, paint);
//6、把輸出bitmap放到輸出畫布上去
canvas.drawbitmap(output, 0, 0, null);
}}
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
自定義圓形ImageView控制項
首先自定義roundimageview繼承imageview package com.bawei.view import android.annotation.suppresslint import android.content.context import android.content.res...
自定義類似ImageView的控制項
建立myimageview類,並繼承view 設定view控制項的xml屬性,也就是attr 在layout中配置view 獲取view控制項的屬性,然後獲取,並顯示。設定imageview的大小 二 製作 1 首先繼承view類 public class myimageview extends v...
自定義控制項Image View的實現
一,設定自定義控制項所需屬性,此設定可用於xml布局,在布局檔案layout中設定繪製控制項所需的color,paintwidth等。在res values下的attrs檔案加入所需屬性 declare styleable中的name為layout中使用的控制項name,attr中指定屬性名及所屬型...