自定義控制項名稱
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是系統自帶,當然系統自帶的也有好幾種...