android 状态栏标题栏设置成渐变,Android 滚动界面让标题栏渐变的问题

情况1. xml:ScrollView包含一个FrameLayout,FrameLayout下包含一个ImageView(ImageView就是占据标题栏和状态栏的图片,需要滚动界面的时候,使ImageView渐变)和一个LinearLayout(这个忽略)

效果图:

f9ec29e5fafe?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

f9ec29e5fafe?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

f9ec29e5fafe?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

ok的代码(请注意圈圈的):

f9ec29e5fafe?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

失败的代码

f9ec29e5fafe?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

失败的地方(具体效果你们可自己代码测试):

刚进入界面的时候,图片不透明(第一行透明代码失效)

当快速滑动界面的时候,透明度会乱,也就是就当往下滑动到(快速)顶部时候,图片显示有可能不是全透明的,在不全透明情况下,慢慢往上滑动,就算滑动到界面中间,图片也可能不是全不透明的

我的问题是根据网友的这几行字解决的。

f9ec29e5fafe?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

ps:如不是图片,而是一个LinearLayout纯色的透明度渐变,

(使用什么颜色可改变后面的(255 255 255)这三个参数):

//白色全透明

linearLayoutTitle.setBackgroundColor(Color.argb(0, 255, 255, 255));

//透明度随滑动而改变

float scale = (float) mDistanceY / (350 - DensityUtil.dip2px(mCxt, 52));

float alpha = (255 * scale);

linearLayout.setBackgroundColor(Color.argb((int) alpha, 255, 255, 255));

//白色不透明

linearLayoutTitle.setBackgroundColor(Color.argb(255, 255, 255, 255));

情况2:占据状态栏和标题栏的依然是LinearLayout或ImageView,只不过滚动的不再是ScrollView,而是RecyclerView。其它的不变,所以要监听RecyclerView的滑动变化

ok的代码:

f9ec29e5fafe?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

主要就是框住的代码。他不像ScrollView那样直接获取dy(视其为高度的变化)就可以了。fffk,之前我一直尝试就单单使用dy,坑了不少时间。

因为很多朋友多觉得安卓状态栏不好处理,额外提供一下链接解决,不谢

好Sorry,时间关系,没能用源码解释以上的问题。因为本人已慢慢脱离开发了,为着方便各大朋友,奉献精神应该有噶。。。。

转载请在开头注明作者详细信息和本文出处 谢谢!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值