APP换肤思路和ListView的item点击

好久没写博客了,看着每个月更两篇更三篇的节奏,感觉自己没救了~打算以后每个星期两篇,压力好大的说。。雅蠛蝶~~ 现在在做的APP简直惊悚,是个网易+微博+百度地图+微信的加强版本,一个月能搞出个Demo,我真是给现在的同事和不靠谱的甲方下个跪Orz

言归正传,现在在做的APP需要实现点击换肤的效果,类似网易云音乐的红黑皮肤切换的效果(当然此处是简化了,当前在做的APP只有标题栏和侧边栏的皮肤颜色需要切换,与黑夜白天模式切换不一样,那个复杂)。先说下思路,可以用Android自带SharedPreferences来实现,设置默认红色皮肤存储0,设置黑色皮肤 存储1。 下面开始撸代码: 我写了一个工具类,可以用来判断当前的皮肤模式,并且实现切换

<!-- lang: java -->
//工具类
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的单选效果,这个比较简单。 代码实现如下:

<!-- lang: java -->
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

转载于:https://my.oschina.net/lengwei/blog/378544

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值