android實(shí)現(xiàn)在圖標(biāo)上顯示數(shù)字
本文實(shí)例為大家分享了android實(shí)現(xiàn)在圖標(biāo)上顯示數(shù)字的具體代碼,供大家參考,具體內(nèi)容如下
效果圖:
動(dòng)態(tài)顯示當(dāng)天的號(hào)數(shù)。
主要代碼如下:
import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.Typeface; import android.graphics.drawable.BitmapDrawable; ? /** ?* 圖片上畫文字 ?*? ?* @author qhg ?* @date 2014年3月5日 ?*? ?*/ ? public class QNotifacationIcon { ?? ?/** ?? ? * 在給定的圖片上添加文字 ?? ? *? ?? ? * @param context ?? ? * ? ? ? ? ? ?上下文對(duì)象 ?? ? * @param resId ?? ? * ? ? ? ? ? ?圖片資源ID ?? ? * @param text ?? ? * ? ? ? ? ? ?需要顯示的文字 ?? ? * @param textSize ?? ? * ? ? ? ? ? ?文字大小 ?? ? * @param color ?? ? * ? ? ? ? ? ?文字顏色 ?? ? * @param typeface ?? ? * ? ? ? ? ? ?文字字體 ?? ? * @param offsetX ?? ? * ? ? ? ? ? ?文字x的偏移量 ?? ? * @param offsetY ?? ? * ? ? ? ? ? ?文字y的偏移量 ?? ? * @return 帶文字的圖片 ?? ? */ ?? ?public static Bitmap generatorContactIcon(Context context, int resId, ?? ??? ??? ?String text, float textSize, int color, Typeface typeface, ?? ??? ??? ?float offsetX, float offsetY) { ?? ??? ?// 根據(jù)id獲取需要處理的圖片 ?? ??? ?Bitmap icon = ((BitmapDrawable) (context.getResources() ?? ??? ??? ??? ?.getDrawable(resId))).getBitmap(); ?? ??? ?int iconWidth = icon.getWidth(); ?? ??? ?int iconHeight = icon.getHeight(); ?? ??? ?// 初始化畫布 ?? ??? ?Bitmap contactIcon = Bitmap.createBitmap(iconWidth, iconHeight, ?? ??? ??? ??? ?Config.ARGB_8888); ?? ??? ?// 構(gòu)建 ?? ??? ?Canvas canvas = new Canvas(contactIcon); ? ?? ??? ?// 創(chuàng)建畫筆 ?? ??? ?Paint paint = new Paint(); ?? ??? ?// 設(shè)定是否使用圖像抖動(dòng)處理,會(huì)使繪制出來的圖片顏色更加平滑和飽滿,圖像更加清晰 ?? ??? ?paint.setDither(true); ?? ??? ?// 如果該項(xiàng)設(shè)置為true,則圖像在動(dòng)畫進(jìn)行中會(huì)濾掉對(duì)Bitmap圖像的優(yōu)化操作,加快顯示 ?? ??? ?// 速度,本設(shè)置項(xiàng)依賴于dither和xfermode的設(shè)置 ?? ??? ?paint.setFilterBitmap(true); ? ?? ??? ?// 截取整個(gè)圖片,從左上角到右下角 ?? ??? ?Rect src = new Rect(0, 0, iconWidth, iconHeight); ?? ??? ?// 截取的圖片放在畫布上的位置 ?? ??? ?Rect dst = new Rect(0, 0, iconWidth, iconHeight); ?? ??? ?canvas.drawBitmap(icon, src, dst, paint); ? ?? ??? ?// 抗鋸齒和使用本身的文本字距 ?? ??? ?Paint numPaint = new Paint(Paint.ANTI_ALIAS_FLAG ?? ??? ??? ??? ?| Paint.DEV_KERN_TEXT_FLAG); ?? ??? ?// 設(shè)置文字顏色 ?? ??? ?numPaint.setColor(color); ?? ??? ?// 設(shè)置文字大小 ?? ??? ?numPaint.setTextSize(textSize); ?? ??? ?// 設(shè)置文字字體 ?? ??? ?numPaint.setTypeface(typeface); ? ?? ??? ?// 將文字內(nèi)容畫在圖片上,x和y的坐標(biāo)這里直接計(jì)算了文字在圖片上的寬高偏移比例 ?? ??? ?canvas.drawText(text, iconWidth * offsetX, iconHeight * offsetY, ?? ??? ??? ??? ?numPaint); ?? ??? ?return contactIcon; ?? ?} }
數(shù)字字體大小會(huì)隨屏幕大小而不適應(yīng),可以根據(jù)屏幕寬度然后動(dòng)態(tài)縮放字體比例。
調(diào)用方式:
// 動(dòng)態(tài)在圖片上畫日期數(shù)字 ((ImageView) convertView.findViewById(R.id.iv_leftImage)) ?? ?.setImageBitmap(QNotifacationIcon.generatorContactIcon( ?? ?context, list_left_iamge_array[position], ?? ?String.valueOf(new Date().getDate()), 30f, Color.GRAY, ?? ?Typeface.DEFAULT_BOLD, 0.35f, 0.75f));
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
android 加載本地聯(lián)系人實(shí)現(xiàn)方法
在android開發(fā)過程中,有些功能需要訪問本地聯(lián)系人列表,本人搜集整理了一番,拿出來和大家分享一下,希望可以幫助你們2012-12-12Android實(shí)現(xiàn)錄音監(jiān)聽動(dòng)畫的示例代碼
在很多app種內(nèi)置了語音助手,也存在各種動(dòng)畫,這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)錄音監(jiān)聽動(dòng)畫的示例代碼,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12Android自定義相機(jī)實(shí)現(xiàn)定時(shí)拍照功能
這篇文章主要為大家詳細(xì)介紹了Android自定義相機(jī)實(shí)現(xiàn)定時(shí)拍照功能的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01超簡(jiǎn)單Android集成華為HMS Scankit 掃碼SDK實(shí)現(xiàn)掃一掃二維碼
這篇文章主要介紹了超簡(jiǎn)單Android集成華為HMS Scankit 掃碼SDK實(shí)現(xiàn)掃一掃二維碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Libgdx解決部分Android機(jī)型鎖屏崩潰的方法
今天小編就為大家分享一篇關(guān)于Libgdx解決部分Android機(jī)型鎖屏崩潰的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10Android入門之Adapter的簡(jiǎn)單使用教程
Adapter其實(shí)就是MVC的概念。這篇文章主要為大家簡(jiǎn)單介紹一下Android中Adapter的簡(jiǎn)單使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-11-11Android填坑系列:在小米系列等機(jī)型上放開定位權(quán)限后的定位請(qǐng)求彈框示例
本文詳細(xì)介紹了在小米系列等機(jī)型上放開定位權(quán)限后的定位請(qǐng)求彈框示例,例如在應(yīng)用軟件中提示顯示定位服務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-11-11Android開發(fā)自學(xué)筆記(三):APP布局上
這篇文章主要介紹了Android開發(fā)自學(xué)筆記(三):APP布局上,本文講解了添加ViewGroup、添加ViewGroup、定義string內(nèi)容、添加Button、運(yùn)行程序查看效果等內(nèi)容,需要的朋友可以參考下2015-04-04Android 安全退出應(yīng)用程序的方法總結(jié)
這篇文章主要介紹了Android 安全退出應(yīng)用程序的方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-03-03