自定義圓形背景的TextView

2021-06-29 13:27:33 字數 1174 閱讀 8079

繼承textview類,

首先是構造方法, 兩參()構造是解析布局檔案時呼叫的, 所以相關的操作在這個方法中定義.

在ondraw()方法裡,

使用canvas.drawcircle(float cx, float cy, float radius,

paint paint)方法繪製乙個圓. 圓的顏色由paint引數決定. 在初始化以及設定顏色的方法中設定paint的顏色引數. 

使用canvas.drawbitmap(bitmat bitmap, float left, float top, paint paint); 方法繪製背景之上的圖案.

使用validate()方法會造成view的重繪, 並重新呼叫ondraw方法.

附上完整**:

public class mytextview extends textview 

public mytextview(context context, attributeset attrs)

public mytextview(context context)

private void init()

@override

public void setbackgroundcolor(int color)

@override

public void ondraw(canvas canvas)

canvas.drawcircle(getwidth() / 2, getheight() / 2, mbgradius, mbgpaint);

if (mforepic != null)

super.ondraw(canvas);

} /**

* 設定前景

* * @param resid

* 資源的id

*/public void setforepic(int resid)

/*** 設定前景

* * @param drawable

*/public void setforepic(drawable drawable)

/*** 設定背景圓形的半徑

* @param radius

*/public void setbackgroundradius(float radius)

自定義圓形Imageview

1 學習一定要善於總結,和敢於使用新的知識 2 一直使用的都是別人寫好的控制項,今天趁著國慶放假有時間,嘗試自己寫經常要用到的框架 3 知識總結 一 用於建立canvas的bitmap不能是已經存在的bitmap 二 這個自定view中遇到乙個坑就是的大小和遮罩大小不匹配是,需要我們對bitmap做...

自定義圓形 ImageView

android預設的imageview是矩形的,為了達到圓形的目的,需要自定義控制項,繼承imageview,重寫ondraw函式。最終效果 具體步驟 1.先根據控制項的短的一邊為半徑繪製乙個圓形 bitmap bitmap bitmapdrawable drawable getbitmap int...

自定義圓形的ProgressBar

1.自定義圓形的progressbar 效果圖 圓形progressbar的樣式主要有以下幾個,我們這裡以progressbarstylelarge為例進行樣式的修改,其他的類似。首先看一下style android attr progressbarstylelarge 的原始碼,在 framewo...