欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 給應(yīng)用程序的icon添加未讀消息個(gè)數(shù)提示(紅圈內(nèi)數(shù)字)

 更新時(shí)間:2017年04月10日 15:24:44   作者:vaecer  
本文主要介紹了Android 給應(yīng)用程序的icon添加未讀消息個(gè)數(shù)提示(紅圈內(nèi)數(shù)字)的方法。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧

最近在做一個(gè)可以查看未讀消息的功能,需要在界面中的Tab頁(yè)的標(biāo)簽icon的右上角添加一個(gè)未讀消息提示的功能。

先上個(gè)效果圖出來(lái),比較直觀明白需求:

思路上似乎有兩種:

 1. 直接把底圖和紅圓圈的圖片用相對(duì)布局進(jìn)行排列,在代碼中動(dòng)態(tài)更改紅圓中的TextView的數(shù)字,并且識(shí)別一下各種情況下紅圓的顯示或者隱藏。這種方法比較直觀。

 2. 采用canvas畫出圓和數(shù)字。

由于項(xiàng)目采用的是Tab頁(yè)的形式,其中的RadioButton不適合采用相對(duì)布局。故我采用了第二種方式。將繪制的過(guò)程寫成了工具方法。在需要的時(shí)候調(diào)用。便于以后的技術(shù)遷移。

直接上代碼:

/** 
  * 繪制圖標(biāo)右上角的未讀消息數(shù)量顯示 
  * 
  * @param context 
  *   上下文 
  * @param icon 
  *   需要被添加的icon的資源ID 
  * @param news 
  *   未讀的消息數(shù)量 
  * @return drawable 
  */ 
 @SuppressWarnings("unused") 
 public static Drawable displayNewsNumber(Context context, int icon, int news) { 
  // 初始化畫布 
  int iconSize = (int) context.getResources().getDimension( 
    android.R.dimen.app_icon_size); 
  // Bitmap contactIcon = Bitmap.createBitmap(iconSize, iconSize, 
  // Config.ARGB_8888); 
  Bitmap iconBitmap = BitmapFactory.decodeResource( 
    context.getResources(), icon); 
  Canvas canvas = new Canvas(iconBitmap); 
  // 拷貝圖片 
  Paint iconPaint = new Paint(); 
  iconPaint.setDither(true);// 防抖動(dòng) 
  iconPaint.setFilterBitmap(true);// 用來(lái)對(duì)Bitmap進(jìn)行濾波處理 
  Rect src = new Rect(0, 0, iconBitmap.getWidth(), iconBitmap.getHeight()); 
  Rect dst = new Rect(0, 0, iconBitmap.getWidth(), iconBitmap.getHeight()); 
  canvas.drawBitmap(iconBitmap, src, dst, iconPaint); 
  // 啟用抗鋸齒和使用設(shè)備的文本字距 
  Paint countPaint = new Paint(Paint.ANTI_ALIAS_FLAG 
    | Paint.DEV_KERN_TEXT_FLAG); 
  countPaint.setColor(Color.RED); 
  canvas.drawCircle(iconSize - 13, 20, 10, countPaint); 

  Paint textPaint = new Paint(); 
  textPaint.setColor(Color.WHITE); 
  // textPaint.setTypeface(Typeface.DEFAULT_BOLD); 
  textPaint.setTextSize(19f); 
  canvas.drawText(String.valueOf(news), iconSize - 18, 27, textPaint); 
  return new BitmapDrawable(iconBitmap); 
 } 

調(diào)用語(yǔ)句:

if (count > 0) {//顯示右上角未讀消息提示 
   Drawable mineDrawable = BitmapUtil.displayNewsNumber(this, 
     R.drawable.icon_mine, count); 
   mineButton.setCompoundDrawablesWithIntrinsicBounds(null, null, 
     null, mineDrawable);//這里就是設(shè)置背景,自行發(fā)揮。 
  } else {//隱藏 
   Drawable defaultDrawable = getResources().getDrawable( 
     R.drawable.icon_mine); 
   mineButton.setCompoundDrawablesWithIntrinsicBounds(null, null, 
     null, defaultDrawable); 
  } 

注:

1.count是未讀消息的數(shù)量。

2.setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom)可以在上、下、左、右設(shè)置圖標(biāo),如果不想在某個(gè)地方顯示,則設(shè)置為null。圖標(biāo)的寬高將會(huì)設(shè)置為固有寬高,既自動(dòng)通過(guò)getIntrinsicWidth和getIntrinsicHeight獲取。該方法是和在xml中設(shè)置 Android:drawableTop="@drawable/icon_mine"的效果一樣。

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • Android MediaPlayer 音頻倍速播放 調(diào)整播放速度問(wèn)題

    Android MediaPlayer 音頻倍速播放 調(diào)整播放速度問(wèn)題

    這篇文章主要介紹了Android MediaPlayer 音頻倍速播放,調(diào)整播放速度,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Android 自定義view和屬性動(dòng)畫實(shí)現(xiàn)充電進(jìn)度條效果

    Android 自定義view和屬性動(dòng)畫實(shí)現(xiàn)充電進(jìn)度條效果

    近期項(xiàng)目中需要使用到一種類似手機(jī)電池充電進(jìn)度的動(dòng)畫效果,以前沒(méi)學(xué)屬性動(dòng)畫的時(shí)候,是用圖片+定時(shí)器的方式來(lái)完成的,下面給大家分享android自定義view和屬性動(dòng)畫實(shí)現(xiàn)充電進(jìn)度條
    2016-12-12
  • Android數(shù)據(jù)結(jié)構(gòu)優(yōu)化教程

    Android數(shù)據(jù)結(jié)構(gòu)優(yōu)化教程

    這篇文章主要介紹了Android數(shù)據(jù)結(jié)構(gòu)優(yōu)化方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • Jetpack Compose 雙指拖拽實(shí)現(xiàn)詳解

    Jetpack Compose 雙指拖拽實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了Jetpack Compose 雙指拖拽實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Android自定義ViewGroup之第一次接觸ViewGroup

    Android自定義ViewGroup之第一次接觸ViewGroup

    這篇文章主要為大家詳細(xì)介紹了Android自定義ViewGroup之第一次接觸ViewGroup,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 深入淺析Android手機(jī)衛(wèi)士保存密碼時(shí)進(jìn)行md5加密

    深入淺析Android手機(jī)衛(wèi)士保存密碼時(shí)進(jìn)行md5加密

    一般的手機(jī)沒(méi)有root權(quán)限,進(jìn)不去data/data目錄,當(dāng)手機(jī)刷機(jī)了后,擁有root權(quán)限,就可以進(jìn)入data/data目錄,查看我們保存的密碼文件,因此我們需要對(duì)存入的密碼進(jìn)行MD5加密,接下來(lái)通過(guò)本文給大家介紹Android手機(jī)衛(wèi)士保存密碼時(shí)進(jìn)行md5加密,需要的朋友一起學(xué)習(xí)吧
    2016-04-04
  • Android VelocityTracker使用案例詳解

    Android VelocityTracker使用案例詳解

    這篇文章主要介紹了Android VelocityTracker使用案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Android網(wǎng)絡(luò)編程之簡(jiǎn)易新聞客戶端

    Android網(wǎng)絡(luò)編程之簡(jiǎn)易新聞客戶端

    這篇文章主要為大家詳細(xì)介紹了Android網(wǎng)絡(luò)編程之簡(jiǎn)易新聞客戶端的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Android Jetpack組件之ViewModel使用詳解

    Android Jetpack組件之ViewModel使用詳解

    Android中的ViewModel是一個(gè)可以用來(lái)存儲(chǔ)UI相關(guān)的數(shù)據(jù)的類。ViewModel的生命周期會(huì)比創(chuàng)建它的Activity、Fragment的生命周期長(zhǎng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-04-04
  • 使用SignalR推送服務(wù)在Android的實(shí)現(xiàn) SignalA

    使用SignalR推送服務(wù)在Android的實(shí)現(xiàn) SignalA

    SignalA是老外寫的用于實(shí)現(xiàn).net端推送消息至安卓端的實(shí)現(xiàn),支持版本為android 2.3或以上
    2014-07-07

最新評(píng)論