标签:
好久没写博客了,看着每个月更两篇更三篇的节奏,感觉自己没救了~打算以后每个星期两篇,压力好大的说。。雅蠛蝶
换了个新公司,新气象
现在在做的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
标签:
原文地址:http://my.oschina.net/lengwei/blog/378544