1. 程式人生 > >textView 右上角紅點及setBounds方法介紹

textView 右上角紅點及setBounds方法介紹

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"
    />

紅點: