今天在项目中遇到了收藏功能,一开始按照我在iOS中的实现方法,但是在安卓中实现起来太过麻烦,因为我是安卓菜鸟,所以才会很难实现吧,各位大神勿喷,我就想到了下面这个方法,通过判断当前ImageView设置的图片是不是未收藏的图片,如果是的,设置成收藏图片,如果是收藏图片,就设置成未收藏图片,来判断当前的图片,来实现收藏效果,下面附上判断代码块。
if (collection.getDrawable().getCurrent().getConstantState().equals(ContextCompat.getDrawable(getContext(),R.drawable.weicollect).getConstantState())) { collection.setImageResource(R.drawable.yicollect); } else { collection.setImageResource(R.drawable.weicollect); }关于上面的代码块,来解释一下,判断当前是不是未收藏图片,如果是,就设置成已收藏,如果是已收藏,就设置成未收藏。 还有一段代码块需要解释一下,之前在网上百度到 Android getDrawable来获取到图片信息吧,但是有的说过了5.0以后就不起作用,所以自己百度了下,搜索到了
ContextCompat.getDrawable(getContext(),R.drawable.weicollect).getConstantState()这个方法来代替,好用,也是谷歌推荐的,通过上面那样的判断就实现了收藏功能,本人太菜,大神勿喷。 强调一下,上面的判断方法不止在ImageView有效,其他View也是可以的。