Android實現(xiàn)動態(tài)切換組件背景的方法
本文所述的程序?qū)崿F(xiàn)的功能為在軟件中動態(tài)的選擇組件背景,系統(tǒng)皮膚,自定義吐司背景等。
為實現(xiàn)這一要求,就需要用到安卓中的SharedPrefence的功能,首先在設(shè)置里面寫一個控件,設(shè)置一個點擊監(jiān)聽器,點擊的時候顯示一個Alert選擇彈窗,讓你進行選擇,對這個彈窗再設(shè)置一個點擊監(jiān)聽器(onItemListener),點擊到具體某個的時候,把對應(yīng)的點擊id保存到sahredprefence里面去,這樣,其他地方就可以從這里取得設(shè)置里選擇的值,進行動態(tài)個性化處理。
具體代碼如下:
1.設(shè)置選擇的操作:
scv_setAddressBg.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int which = sp.getInt("which", 0);
final String[] items = {"半透明","活力橙","衛(wèi)士藍","金屬灰","蘋果綠"};
AlertDialog.Builder builder = new Builder(SettingActivity.this);
builder.setTitle("設(shè)置歸屬地顯示背景");
builder.setSingleChoiceItems(items, which, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Editor edit = sp.edit();
edit.putInt("which", which);
edit.commit();
scv_setAddressBg.setDesc(items[which]);
dialog.dismiss();
}
});
builder.setNegativeButton("取消", null);
builder.show();
}
});
2.顯示自定義吐司的操作:
public void showMyToast(String address) {
<span style="color:#ff6600;">int[] ids = {R.drawable.call_locate_white,R.drawable.call_locate_orange,R.drawable.call_locate_blue
,R.drawable.call_locate_gray,R.drawable.call_locate_green};</span>
<span style="color:#ff6600;">SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);
int which = sp.getInt("which", 1);</span>
view = View.inflate(this, R.layout.address_show, null);
TextView textView = (TextView) view.findViewById(R.id.tv_address);
textView.setText(address);
<span style="color:#ff6600;">view.setBackgroundResource(ids[which]);</span>
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
params.format = PixelFormat.TRANSLUCENT;
params.type = WindowManager.LayoutParams.TYPE_TOAST;
wm.addView(view, params);
}
3.歸納總結(jié)如下:
(1)要注意數(shù)組的應(yīng)用,ids[ value]這種使用方式要能想到用,將圖片資源文件寫在一個ids數(shù)組里是個很好的方式和想法。
(2)細心,獲得sp的時候名字寫錯了,config寫成了configs。
(3)理解調(diào)試技巧是靠經(jīng)驗和邏輯推理的,都很重要。
相關(guān)文章
Android 中使用RecyclerView實現(xiàn)底部翻頁
這篇文章主要介紹了Android 中使用RecyclerView實現(xiàn)底部翻頁功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-11-11
Android開發(fā)實現(xiàn)刪除聯(lián)系人通話記錄的方法
這篇文章主要介紹了Android開發(fā)實現(xiàn)刪除聯(lián)系人通話記錄的方法,較為詳細的分析了Android刪除通話記錄的原理、步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2016-10-10
Android游戲開發(fā)學(xué)習(xí)之引擎用法實例詳解
這篇文章主要介紹了Android游戲開發(fā)學(xué)習(xí)之引擎用法,較為詳細的分析了Android游戲開發(fā)中所常用的JBox2D引擎功能及相關(guān)使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10
基于flutter?sound插件實現(xiàn)錄音與播放功能
這篇文章主要介紹了基于flutter?sound插件實現(xiàn)錄音與播放功能,介紹了如何錄音,如何播放本地和遠程音頻文件,以及如何實現(xiàn)動畫,在錄制完音頻文件后如何上傳,這些都是我們平常使用這個功能會遇到的問題。在使用的過程中遇到的問題也有列出,需要的朋友可以參考下2022-05-05
Android Studio 配置忽略文件的方法實現(xiàn)
這篇文章主要介紹了Android Studio 配置忽略文件的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
使用Eclipse配置android開發(fā)環(huán)境教程
這篇文章主要介紹了使用Eclipse配置android開發(fā)環(huán)境教程,本文講解了下載需要用到的工具、下載完需要的工具之后開始安裝、讓Ecplise自動安裝Android開發(fā)插件(ADT- plugin)、配置Andiord SDK路徑、測試開發(fā)一個Android項目等內(nèi)容,需要的朋友可以參考下2015-04-04
Android編程開發(fā)之NotiFication用法詳解
這篇文章主要介紹了Android編程開發(fā)之NotiFication用法,結(jié)合實例形式較為詳細的分析了NotiFication的功能、使用技巧與注意事項,需要的朋友可以參考下2015-12-12

