自定義ImageView控制項

2021-07-25 23:18:59 字數 2086 閱讀 4176

<?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中指定屬性名及所屬型...