我是Android应用程序开发的新手,我目前正在尝试各种UI创意。在下图中,您可以看到一个垂直滚动的水平滚动画廊列表(以及您可以看到的文本视图)。我也在进行一些矩阵和相机转换,我将在一分钟内完成。
对于列表元素的背景,我使用绿色。蓝色是画廊的背景,红色是图像的背景。这些只是为了我学习的好处。
正在使用的画廊是扩展类,我覆盖了drawChild方法以执行画布缩放操作,以使最接近中心(宽度)的图像大于其他图像。
列表视图垂直移动,我覆盖了drawChild方法,并使用了画布功能中缺少深度维度的相机旋转。列表中的项目按比例缩小并相对于其位置靠近中心(高度)进行旋转。
我知道滚动和点击不一定会跟随图像变换,但看起来好像父类的绘图也被限制在原始坐标上(见下图)。
我很想听听你们有什么见解,我可以通过画廊滚动和所述画廊的触摸响应来改变画廊的坐标。
图库中的图片尺寸不同,所以不要让它让你看到下面的图片
提前致谢!
本
link to image(无法嵌入)
- - 更新: 我正在使用我的测试应用程序UI,并注意到当我将UI放到链接图像的点然后我触摸列表中下一行的顶部时,库更新以显示正确的表示。因此,我在drawChild方法中添加了对clearFocus()的调用,从而实现了更精确的绘制。它似乎有点慢,因为我在Incredible,我担心这是一个臃肿的解决方案。
无论如何,我仍然感谢您对如何正确显示视图以及如何将画廊新显示区域中的触摸事件转换为可触摸坐标的任何想法,以便滚动实际图像当画廊搬家时。
谢谢!
答案 0 :(得分:1)
正如我之前更新的那样,通过在ListView扩展类的drawChild方法中调用clearFocus来解决图库未完全刷新的问题。
注册触摸事件的问题原来是我用了一个例子作为我的实验程序的基础,该实验程序称为用于绘画的矩阵的预翻译。一旦我删除了该呼叫并调整了翻译后的调用以补偿不再进行翻译前调用,我就可以滚动浏览画廊,无论其位置,大小或旋转(围绕x轴)。