天天看點

仿微信、短信、QQ等消息數目右上角紅色小圓球氣泡顯示(基于Android XML布局檔案實作)

效果圖如下:

仿微信、短信、來電未接數目、QQ等消息數目右上角紅色小圓球氣泡顯示(基于Android XML布局檔案實作)。這種實作方式主要有兩種途徑:(1)重寫View的onDraw()。(2)寫布局檔案實作。現在使用布局檔案實作,主要利用FrameLayout的布局覆寫特性實作上述功能。随意一個圖檔,本例中以eclipse自動産生的ic_luancher.png(就是Android小機器人)圖檔為例。将ic_launcher作為一個ImageView的src。将此ImageView處理成圓角圖(不是本例的重點)。再寫一個FrameLayout,内部嵌套一個TextView,此TextView以一個紅色圓作為背景。

layout目錄下的 round_corner_imageview.xml :

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    
    android:padding="3dip" >

     <ImageView
        android:layout_marginTop="10dip"
        android:layout_marginLeft="10dip"
        android:layout_marginRight="10dip"
         
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:src="@drawable/ic_launcher"
        android:background="@drawable/round" />

    <FrameLayout 
        android:layout_gravity="right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            
            android:layout_width="25dip"
    		android:layout_height="25dip"
            android:background="@drawable/tips_circle"
            android:gravity="center"
            android:text="5"
            android:textSize="15dip"
            android:textStyle="bold"
            android:textColor="@android:color/white" />
    </FrameLayout>

</FrameLayout>           

drawable目錄下(1)round.xml,(2)tips_circle.xml

round.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    
    <!-- 背景填充顔色值 -->
    <solid android:color="#FFA500" />
    
    <!-- radius值越大,越趨于圓形 -->
    <corners android:radius="20dip" />
    
    <!-- 圓角圖像内部填充四周的大小 ,将會以此擠壓内部布置的view -->
    <padding
        android:bottom="3dip"
        android:left="3dip"
        android:right="3dip"
        android:top="3dip" />

</shape>           

tips_circle.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android= "http://schemas.android.com/apk/res/android"
    android:shape= "oval"
    android:useLevel= "false" >
    <solid android:color= "#FF0000" />
</shape>           



繼續閱讀