標籤:
好久沒寫部落格了,看著每個月更兩篇更三篇的節奏,感覺自己沒救了~打算以後每個星期兩篇,壓力好大的說。。雅蠛蝶
換了個新公司,新氣象
現在在做的APP簡直驚悚,是個網易+微博+百度地圖+的加強版本,一個月能搞出個Demo,我真是給現在的同事下個跪和不靠譜的甲方Orz
言歸正傳,現在在做的APP需要實現點擊換膚的效果,類似網易雲音樂的紅黑皮膚切換的效果(當然此處是簡化了,當前在做的APP只有標題列和側邊欄的皮膚顏色需要切換,與黑夜白天模式切換不一樣,那個複雜)。先說下思路,可以用Android內建SharedPreferences來實現,設定預設紅色皮膚儲存0,設定黑色皮膚 儲存1。
下面開始擼代碼:
我寫了一個工具類,可以用來判斷當前的皮膚模式,並且實現切換
//工具類public class skinMode{ private Context context; private SharedPreferences skinMode; public SkinMode(Context context) { skinMode = context.getSharedPreferences(); } //獲得皮膚模式,0代表預設紅色,1代表黑色 public int getSkinMode() { return skinMode.getSharedPreferences("skinmode",0); } //設定皮膚模式 public void setSkinMode(int skinMode) { skinMode.put("skinmode",skinMode); } public void setViewSkinMode(View view,int skinMode) { if(0==skinMode) { setSkinMode(skinMode); //模式切換 view.setBackgroundColor(Color.RED);//設定顏色 } else if(1==skinMode) { setSkinMode(skinMode); view.setBackgroundColor(Corlor.BLACK); } }}
白天黑夜模式切換還牽扯字型的變換,控制項的透明度等,比較複雜,這個我還做不了~
另一個問題是,點擊GridView的item的時候,實作類別似Checkbox的單選效果,這個比較簡單。
代碼實現如下:
gridview.setOnItemClickListener(new OnItemClickListener( AdapterView view,View view,int position,long id){ for(int i=0;i<gridview.getChildCount();i++) { TextView tv = (TextView)gridview.getChildAt(i); tv.setBackroundColor(color.Black); // 預設是黑色 } view.setBackgroundColor(color.Red);//點擊後是紅色}
)
Thats ALL
APP換膚思路和ListView的item點擊