自定義控制項textview

2021-07-02 01:00:19 字數 2810 閱讀 2831

自定義控制項名稱

public class cheyouquanlinearlayout extends viewgroup

public cheyouquanlinearlayout(context context, int horizontalspacing, int verticalspacing)

public cheyouquanlinearlayout(context context, attributeset attrs)

@suppresslint("drawallocation")

@suppresswarnings("unchecked")

@override

protected void onmeasure(int widthmeasurespec, int heightmeasurespec)

mbottom = mtop + child.getmeasuredheight();

my = mtop;  //每次的高度必須記錄 否則控制項會疊加到一起

position.left = mleft;

position.top = mtop;

position.right = mright;

position.bottom = mbottom;

map.put(child, position);

}setmeasureddimension(mwidth, mbottom);

}@override

protected layoutparams generatedefaultlayoutparams()

@override

protected void onlayout(boolean changed, int l, int t, int r, int b) else }}

private class position

public int getposition(int indexinrow, int childindex)

return getpaddingleft();

}動態載入人名

// 贊的人名

displaymetrics metric = new displaymetrics(); 

context.getwindowmanager().getdefaultdisplay().getmetrics(metric);

//dp轉化成px

float scale = context.getresources().getdisplaymetrics().density;

int widthqi=(int) (125*scale + 0.5f);

int widthquan = metric.widthpixels-widthqi; //獲取螢幕的寬度

float widthq=0;

for (int a = 0; a < zlist.size(); a++)

/***************以下為換行操作start**********************/

//獲取資料寬度

textview tvname=new textview(context);

tvname.settext(name);

tvname.settextsize(14);

int wgname = view.measurespec.makemeasurespec(0,view.measurespec.unspecified);

int hgname = view.measurespec.makemeasurespec(0,view.measurespec.unspecified);

tvname.measure(wgname, hgname);

//獲取字串的長度

int widthname=tvname.getmeasuredwidth();//px

//獲取前面的本行的所有寬度

float widthd=widthq;

widthq=widthname+widthq;

if(widthq<=widthquan)

});}elseelse if(wsname2==widths)

}/**乙個textview拆成兩個textview*/

string name1=name.substring(0, wss+1);

string name2=name.substring(wss+1,name.length());

if(!textutils.isempty(name1))

});}

if(!textutils.isempty(name2))

});}

textview tv6=new textview(context);

tv6.settext(name2);

tv6.settextsize(14);

int wg6 = view.measurespec.makemeasurespec(0,view.measurespec.unspecified);

int hg6 = view.measurespec.makemeasurespec(0,view.measurespec.unspecified);

tv6.measure(wg6, hg6);

//獲取字串的長度

int w2px=tv6.getmeasuredwidth();//px

widthq=w2px;

/*************以上為換行操作end*******************/}}

自定義閃爍Textview

一直感覺自定義view是乙個比較難的點,但是要成為乙個合格的android開發者,自定義view又是必經之路。今天我就帶大家寫乙個簡單的自定義textview。在自定義view之前先看一下簡單知識點。1.view的測量。view的測量模式有三種,精確模式 exactly 如控制項具體寬高的大小 最大...

Android 自定義TextView字型!

兩種方法 方法一 在assets目錄下新建目錄fonts,然後存放自己的字型庫,我這裡是微軟雅黑weiruanyahei.ttf。textview tv typeface tf2 typeface.createfromasset getassets fonts weiruanyahei.ttf tv...

TextView的自定義字型

這裡有兩種實現方法 1 這種實現方法比較簡單。但是只能設定個別的字型,結果可能不是你想要的。winp.settext typeface.default bold winp.settypeface typeface.default bold default bold是系統自帶,當然系統自帶的也有好幾種...