Nul*_*ion 7 android bitmap tile infinite-scroll android-bitmap
我正在开发一款游戏
首先我的游戏将非常简单,所以我宁愿不使用库或opengl或canvas,我宁愿用简单的图像视图或普通视图来实现这一点,或者至少以最简单的方式实现.例如,使用android位图平铺模式:
public static void setBackground(Bitmap bmp, ViewGroup layout){
BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp);
bitmapDrawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
layout.setBackgroundDrawable(bitmapDrawable);
}
Run Code Online (Sandbox Code Playgroud)
我想开发一个简单的2D/3D混合太空飞船游戏.屏幕将是太空飞船驾驶舱的视野,你将移动宇宙飞船触摸我已经完成的操纵杆.所以背景将是一个宇宙背景,我的意思是一个巨大的黑色图像与星星,这个图像必须移动到所有方向,操纵杆模拟太空船正在改变它的方向,当你向右移动很多时,例如,背景图像必须从头开始模拟太空船仍在向右移动而没有任何限制
正如我所提到的,我现在有了操纵杆,我知道如何使用操纵杆移动图像视图,问题是我不知道如何正确地创建带有图块的无限图像视图,因为当我移动包含图块的图像时可以移动然后图像从屏幕上消失.
这是使用无限背景的图像示例:

我遇到了类似的问题,并找到了一个仅使用 XML 的解决方案。在高度为 50000dp 的垂直 ScrollView 中,我的平铺背景图像会根据需要重复填充此高度。因此,滚动将产生所需的星星飞过的效果(以您的图像为例)。
wrap_content.wrap_content. 将其背景设置为:android:background="@drawable/repeating_background"
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/stars_image"
android:tileModeY="repeat"
/>
Run Code Online (Sandbox Code Playgroud)
tileModeY="repeat"使star_image(png、jpeg 等)仅垂直重复。您可能会想要使用它tileMode="repeat",因为它可以处理 X 和 Y。tileMode="mirror"您可以探索它,因为它会反映图像,以便在背景颜色发生变化时消除任何接缝的外观。就是这样!如果您将相同的背景设置为 ScrollView 本身,那么它只会平铺您的图像,但在 ScrollView 的内容滚动时,平铺的背景将保持静态。
| 归档时间: |
|
| 查看次数: |
823 次 |
| 最近记录: |