Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Drawable:完全覆盖时不会加载图层列表重复位图_Android_Bitmap_Drawable_Repeat - Fatal编程技术网

Android Drawable:完全覆盖时不会加载图层列表重复位图

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

我有三个一次加载的全屏周视图(上一个、下一个、当前)。每周视图有7列(一周中的每一天一列),具有可绘制的背景

我的绘图资源背景是

<?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    '
                |          |