安卓開發 根據view布局動態生成帶文字頭像

2021-10-14 17:33:42 字數 1740 閱讀 5900

現在很多軟體在沒設定頭像的時候都會根據使用者的名字生產乙個頭像展示,類似釘釘,下面就看看在安卓裡面如何做到這樣的效果吧。

可能下面方法不是最佳,但是思路應該沒問題。

要動態生成文字頭像,最先想到的應該是使用layout布局吧。

每次使用者名稱發生改變的時候通過布局修改文字,而要做到頭像效果,接下來將布局變成 bitmap就可以去填充imageview了。

下面是乙個將view轉成bitmap的方法,用bitmapfactory.options也可以(可能會更好一些)。

public

static bitmap getviewbitmap

(view addviewcontent,

float scanx,

float scany)

return newbitmap;

}

這裡會有乙個問題,直接給根布局設定背景會使布局失真,背景會以原大小顯示,可以將背景放到imageview中去。

下面就是填充資料,並通過上面方法生成drawable了。

private drawable getdefaulticon

(string name)

else

bitmap defaulticon = resourceutil.

getviewbitmap

(defaulticonview,1f,

1f);return

newbitmapdrawable

(getresources()

, defaulticon)

;}

如何判斷是否有設定好的頭像呢?其實 glide 在這方面就很實用。

通過 glide的requestoptions可以設定很多東西,裡面就可以設定我們定義的非正常頭像,例如載入前、url為空、載入失敗的。

//生成預設頭像(忽略拼音變數,這是不好的習慣)

drawable defaulticon =

getdefaulticon

(wgydata.

get(i)

.getname()

);//載入頭像

imageview imageview = markerview.

findviewbyid

(r.id.icon)

; glide.

with

(wgymapactivity.

this).

load

(wgydata.

get(i)

.getphotourl()

).(new

requestoptions()

.placeholder

(defaulticon)

//載入前

.fallback

(defaulticon)

//url為空

.error

(defaulticon)

//載入失敗

.transform

(new

circlecrop()

)//圓角

.skipmemorycache

(true).

diskcachestrategy

(diskcachestrategy.none)

.centercrop()

).into

(imageview)

;

安卓開發技巧篇 布局檢視神器

1.作為一名開發者,必須要掌握一些有用的開發技巧。而開發技巧,可以使我們快速完成工作任務,從而讓專案可以順利上線,比如 eclipse,studio 等快捷鍵,確實很方便,也大大提高了開發效率。3.使用sdk自動uiautomatorviewer工具檢視,就可以一目了然了。路徑為 sdk目錄下 to...

安卓開發自定義view初體驗

最近學習發現自定義view可以製作,可以製作很秀的自己專屬的控制項,具體的介紹我就不多說了,很多大牛部落格已經說得很清楚了。主要實現了兩個方法,我也是簡單講一下 1 protected synchronized void onmeasure int widthmeasurespec,int heig...

安卓學習第七天 動態載入布局的技巧

雖然動態新增碎片的功能很強大,但在很多實際開發過程中,它只是在乙個布局檔案中進行一些新增和替換的操作。若我們的程式能夠根據裝置的解析度或螢幕的大小在執行時來決定載入哪個布局,那我們可以發揮的空間就很多了,下面我們一起來簡單看一下動態載入布局的技巧。1.使用限定符 我們如果經常使用平板我們會發現在平板...