自定義控制項Image View的實現

2021-09-25 08:16:55 字數 1272 閱讀 4465

設定自定義控制項所需屬性,此設定可用於xml布局,在布局檔案layout中設定繪製控制項所需的color,paintwidth等。在res->values下的attrs檔案加入所需屬性:

declare-styleable中的name為layout中使用的控制項name,attr中指定屬性名及所屬型別,layout檔案使用如下:

二,建立myimageview的類,extends原生的image view。實現init方法,初始化各類屬性及獲取自定義屬性值

private void init(context context, @nullable attributeset attrs, int defstyleattr)

if(type == type_round)

}

四,重寫ondraw方法,繪製自定義控制項內容。

@override

protected void ondraw(canvas canvas)

}else

}else

}else

}}

設定渲染

private void setshader()

//將drawable轉換成bitmap

bitmap bitmap = drawable2bitmap(drawable);

//clamp(拉伸)、repeat(重複)、mirror(映象),shader的拉伸方式為拉伸最後一畫素

bitmapshader = new bitmapshader(bitmap, shader.tilemode.clamp, shader.tilemode.clamp);

//縮放,若仍小於imageview則拉伸最後一畫素,否則不拉伸

float scale = 1.0f;

float scale1 ;

if(type == type_circle)else if(type ==type_round)

matrix.setscale(scale,scale);

bitmapshader.setlocalmatrix(matrix);

paint.setshader(bitmapshader);

if(hadframe)

}

自定義ImageView控制項

package com.zdsoft.circleimageview import android.content.context import android.content.res.typedarray import android.graphics.bitmap import android....

自定義圓形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...