1. 程式人生 > >Android自定義View之未讀訊息提示

Android自定義View之未讀訊息提示

一個輕量級的仿微信未讀訊息提示

大家好,我是接觸安卓不久的小菜鳥,今天花了一晚上封裝了一個類似微信未讀訊息提示的安卓控制元件。由於技術問題,所以功能不是很強大,沒有動畫,但是滿足基本需求還是可以的。下面是示例圖:

在這裡插入圖片描述

接下來給大家說一下怎樣使用這個未讀訊息提示。

第一步

在你的build.gradle檔案下加入 maven {url ‘https://jitpack.io’}

allprojects {
	repositories {
		google()
		jcenter()
		maven {url "https://jitpack.io"}
	}
}

注意:一定是要在allprojects下加入 maven {url ‘

https://jitpack.io’},如果在builgsript下加則會構建失敗。

第二步

在dependencies下加入 implementation ‘com.github.EHENJOOM:RedSpot:1.0.2’

implementation 'com.github.EHENJOOM:RedSpot:1.0.2'

第三步

直接在你的xml佈局檔案裡使用RedSpot控制元件就可以了

<com.ehenjoom.redspot.RedSpot
    android:layout_width="20dp"
    android:layout_height
="20dp" />

一般寬高設定成20dp左右大小比較合適。
當然,你也可以在佈局檔案裡使用我封裝好的屬性,但是要先加入這句:

xmlns:app="http://schemas.android.com/apk/res-auto"

接著就可以使用定義好的屬性了:

app:textSize="50"
app:textColor="@color/white"
app:backgroundColor="@color/red"
app:text="99+"

寬高為30dp時,textSize為50比較合適;寬高為20dp時,textSize為25比較合適。
字型顏色預設為白色,背景顏色預設為紅色。
你也可以在java程式碼裡設定這些屬性:

RedSpot redSpot=findViewById(R.id.myRedSpot);
redSpot.setText(12)
       .setTextColor("#000000")   // 白色
       .setTextSize(50)
       .setBackColor("#ff0000");  // 紅色

另外,讓這些小紅圈消失的方法也很簡單:

redSpot.setVisibility(View.VISIBLE)    // 可見
redSpot.setVisibility(View.INVISIBLE)  // 不可見

原始碼點選專案地址下載即可,可以進行二次封裝。

好了,以上就是全部介紹了,有什麼錯誤請大家指正。

後續會更新更加方便好用的版本,敬請期待。