Android Drawable:完全覆盖时不会加载图层列表重复位图
我有三个一次加载的全屏周视图(上一个、下一个、当前)。每周视图有7列(一周中的每一天一列),具有可绘制的背景 我的绘图资源背景是Android Drawable:完全覆盖时不会加载图层列表重复位图,android,bitmap,drawable,repeat,Android,Bitmap,Drawable,Repeat,我有三个一次加载的全屏周视图(上一个、下一个、当前)。每周视图有7列(一周中的每一天一列),具有可绘制的背景 我的绘图资源背景是 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Grey border on left
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Grey border on left and right --><item><shape><solid android:color="#999"/></shape></item>
<!-- White background (.5pt to not cover border) --><item android:left=".5pt" android:right=".5pt"><shape>solid android:color="#FFF"/></shape></item>
<!-- Image that repeats to make a grid --><item android:left=".5pt" android:right=".5pt"><bitmap android:src="@drawable/grid" android:tileMode="repeat" android:gravity="center" /></item>
<!-- Times that align left. (12AM, 1AM, etc) --><item android:left="1pt" android:right=".5pt"><bitmap android:src="@drawable/grid_times" android:gravity="top|left|clip_horizontal" /></item>
</layer-list>
当用户用手指拖动视图时,结果是这样的(用户可以看到左侧第一个窗格(前一周)的一小部分)
另一种方式是这样的(用户可以在第二个窗格中看到一点(下周))
当用户放开时,他们会捕捉到这个位置(目前,当我们修复这个位置时,它会改变)
当您移动前面的视图时,
invalidate()
其他视图,以便加载可绘制视图。为什么不在ScrollView中并排创建3个视图?我想我可以这样做。但我决定不这样做。基本上我可以使用ScrollView,但是如果我一直向左滚动,我将不得不跳过滚动以允许用户进一步向左滚动。这是一个日历系统,因此用户可以通过反复向左滑动几乎无限地回到过去。如果我知道我会有位图问题,我可能会那样做。我当然需要隐藏滚动条,否则它看起来会很傻。我想你只需要显示3个面板,但是如果你想显示很多项目,并且有一个快速定位功能,我建议你使用一个项目屏幕大小的图库,这样你就可以将项目添加到图库中,它将为你处理所有的滚动。只有三个面板,当我向左滚动时,最右侧的面板将移动到当前面板的左侧,其数据将被更新。这在相关问题中进行了描述。“这就是为什么我不能使用HorizontalScrollView”。我不知道这个画廊是否管用。它是否允许我从一侧移除项目并将其添加到另一侧?出于内存和性能原因,一次渲染的项目数量应限制为3个,并且我希望在用户向左或向右滑动时产生动画效果。Gallery将只保留可见面板和上一个和下一个面板的内存,因此您可以使用,一年中的几个月画廊中有12个项目,7月画廊中有一个选定的项目编号7,因此如果用户向左或向右滚动,画廊将要求显示视图。至于动画,画廊就像一个水平的列表视图,所以你只能得到一个滚动,在滚动停止时,它有一个简单的动画来将项目居中。我认为你想要的方式就是图库,但人们认为图库只用于图像,但可以用于任何视图和布局。我会在有机会的情况下进行测试。Android不会自动进行测试的原因是,你会发现它会造成明显的延迟
' first '
' second '
' third '
| |#<-- The android screen boundaries. Only third is visible.
^ ^ ^
user
looking
forward
' first '
' second '
' third '
| |
' first '
' second '
' third '
| |
' first '
' second '
' third '
| |