textView 右上角紅點及setBounds方法介紹
阿新 • • 發佈:2018-11-03
Drawable的setBounds方法有四個引數,setBounds(int left, int top, int right, int bottom),這個四引數指的是drawable將在被繪製在canvas的哪個矩形區域內。
例如
@Override
protected void onDraw(Canvas canvas) {
drawable.setBounds(100, 100, 500, 500);
drawable.draw(canvas);
}
- 1
- 2
- 3
- 4
- 5
上面的程式碼會將drawable繪製在canvas內部(100,100,500,500)表示的矩形區內(這個矩形區域的座標是以canvas左上角為座標原點的)
textView右上角小紅點效果圖:
Drawable drawable = mContext.getResources().getDrawable(R.drawable.layer_list_red_dot,null); drawable.setBounds(1,1,40,60); viewHolder.timeTextView.setCompoundDrawables(null,null,drawable,null);
drawable資料夾下建立:\res\drawable\layer_list_red_dot.xml
<?xml version="1.0"encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:width="1dp" android:height="1dp" > <!--top讓bitmap可以往下偏移13dp--> <!--使用bitmap標籤和Gravity讓小紅點不縮放--> <bitmap android:antialias="true"android:gravity="top" android:src="@drawable/red_dot"/> </item> </layer-list>
佈局檔案中TextView:
<TextView android:id="@+id/textview_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:gravity="center" android:text="12:22" android:textSize="15sp" />
紅點: