当前位置:编程学习 > wap >>

绝对定位下ImageView重绘Bitmap的问题

我在一个AbsoluteLayout上添加了一个ImageView,用于显示一张比较大(肯定超出屏幕尺寸,等比显示)的图片
ImageView可以拖动,每隔一秒种需要重绘Bitmap并且用setImageBitmap方法把图片刷新到ImageView上
我的问题是:当ImageView被拖动到离开屏幕左上角之后,当再次调用setImageBitmap方法时,ImageView又自己跑到屏幕左上角去了,请问该如何处理才能保持ImageView的位置不发生变化? --------------------编程问答-------------------- 是不是也要更新一下LayoutParams! --------------------编程问答--------------------
引用 1 楼 smilekai0908 的回复:
是不是也要更新一下LayoutParams!


setImageBitmap后,getLeft()未发生变化,我觉得设置了也没用。
当onDraw方法被调用时,坐标就自动变成了(0,0)。 --------------------编程问答-------------------- 问题补充:
之前用SurfaceView做的时候可以直接在canvas上绘制图形,不需要重新设置背景图(但如果今后加入缩放,并且重新绘制的话,很可能也有同样的问题),可问题是SurfaceView上的动画功能并不很好实现。
所以解决问题的方法我觉得第一是setImageBitmap时能够保持imageview的位置不动。第二就是不使用bitmap,直接在bitmap上绘制。

希望有遇到此问题的朋友指点一二。 --------------------编程问答-------------------- 还没有人出来解答,再顶一下 --------------------编程问答-------------------- 我也遇到了这个问题 顶下 请高手回答 --------------------编程问答-------------------- 在up事件里面 记录下坐标 初始化一下 --------------------编程问答--------------------
记录一下当前显示位置
然后每setImageBitmap的时候再image设置postTranslate()。 --------------------编程问答-------------------- 我也遇到这个问题了,请问你解决了吗 --------------------编程问答-------------------- 最好用Metrix来做 --------------------编程问答--------------------
引用 9 楼 scliu0718 的回复:
最好用Metrix来做

用matrix的画,要怎么设置imageview的宽高呢。图片只能在Imageview里面拖动、缩放。imageview设成固定大小的话,就不能全屏拖动缩放了,设成屏幕大小的话,当有多张图片的时候,触摸区域重叠了,又不行。我需要在一个屏幕上放多张图片,这些图片都可以随意拖动、缩放。 --------------------编程问答--------------------
引用 10 楼 wdy2008213 的回复:
Quote: 引用 9 楼 scliu0718 的回复:

最好用Metrix来做

用matrix的画,要怎么设置imageview的宽高呢。图片只能在Imageview里面拖动、缩放。imageview设成固定大小的话,就不能全屏拖动缩放了,设成屏幕大小的话,当有多张图片的时候,触摸区域重叠了,又不行。我需要在一个屏幕上放多张图片,这些图片都可以随意拖动、缩放。
好乱。。。
你想做成360里面菜单手动效果么?除此之外你还得放大?
很麻烦,你先一个一个来实现吧。放大先做好,如果用matrix来的话不需要手动给它设置宽度,只需要给它传放大比例 --------------------编程问答-------------------- 你走的路子错了。

每一帧都重新绘图,建议换 surfaceView,用imageView你会坑死的。
setImageBitmap方法是会重新生成一个bitmap对象去转换的,刷新频繁点你的程序就崩溃了。

还有ImageView 大小是会根据你set进去的图片自动维护大小和位置的!
如果实在不想用surfaceView,建议自定义一个View,实现onDraw方法吧。
--------------------编程问答-------------------- 用surfaceView 你这样搞不好没销毁的话, 进几次还oom了, 特别是大分辨率手机 --------------------编程问答-------------------- 记录一下当前显示位置在看每setImageBitmap的时候再image设置postTranslate()。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,