android应用模仿android桌面效果

a132225 2012-04-18 04:43:29
1.应用有个背景,并且有固定宽度(比如两个屏幕宽度,或者固定1000dip)
2.应用上有多个页,类似Gallery。(这个层的宽度可变,由内容的多少决定)(暂且称为 视图层)
想要的效果:
滚动视图层时,背景随之滚动。
注意:
滚动时,背景的滚动幅度由“视图层”的宽度来决定,就是当视图层滚动到最后时,背景图片也刚刚好滚动到了最后(很显然视图层和背景的宽度不相等)
...全文
317 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a132225 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
Launcher的做法是wallpaper service控制的
你需要做的应该是利用view的scrollTo方法实现,这样可能最快
[/Quote]
scroll很早就试过了,这个玩意儿相当坑爹
scrollTo或By都是整型运动,并不能满足我背景差速运动的效果(会出现视图层到底了,但是背景没有刚好到底,或过早到底的情况,即使是使用算法将这种误差减小也会出现跳格运动的情况)
看来只能绘制了,
破折号 2012-04-18
  • 打赏
  • 举报
回复
Launcher的做法是wallpaper service控制的
你需要做的应该是利用view的scrollTo方法实现,这样可能最快
a132225 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
这个背景要自己画, 通过视图层的canvas.drawBitmap()去画背景, 这个函数有个参数是x的起始位置, 这个起始位置就是要自己根据视图层当前处于什么位置去计算了...
[/Quote]

我也想过使用绘制,但是一直想找个更方便的办法。
除了绘制,还有其他办法嘛?
还有就是,在move的时候实时绘制,在效率和效果方面会不会有不好的地方啊?
xqhrs232 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
launcher 分开控制的
有代码专门去刷新背景的
[/Quote]

你说的是墙纸吧!
aSysBang 2012-04-18
  • 打赏
  • 举报
回复
launcher 分开控制的
有代码专门去刷新背景的
CNnumen 2012-04-18
  • 打赏
  • 举报
回复
假设背景宽度:wpWidth
屏幕宽度:screenWidth
屏幕数量:count

那么背景分给每个屏幕的长度为:
eachLenght = (wpWidth - screenWidth) / count

根据这个eachLenght就可以通过canvas.drawBitmap(x, ...)去画壁纸了
CNnumen 2012-04-18
  • 打赏
  • 举报
回复
这个背景要自己画, 通过视图层的canvas.drawBitmap()去画背景, 这个函数有个参数是x的起始位置, 这个起始位置就是要自己根据视图层当前处于什么位置去计算了...

80,493

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧