一,設定自定義控制項所需屬性,此設定可用於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...