【问题标题】:How can i repeat bitmap on Android in Java?如何在 Java 中在 Android 上重复位图?
【发布时间】:2018-09-21 04:57:21
【问题描述】:

问候各位程序员,我想用 Java 在 Android 上垂直重复我的位图。我现在正在为马里奥等 Android 平台制作游戏,我的背景位图需要在 X 轴上重复。我的位图对于我的屏幕来说太大了,所以我只画了设备屏幕的一半。我在绘制方法的每次迭代中将背景向后移动,如下所示;

bgSrcX[0] += 20;
bgSrcX2[0] += 20;   
bgSrc[0].set(bgSrcX[0], 0, bgSrcX2[0], bg[0].getHeight());    
canvas.drawBitmap(tileMe.getBitmap(), bgSrc[0], bgDst[0], null);   

如果你们能帮助我,我将不胜感激。提前致谢。

【问题讨论】:

    标签: java android 2d-games


    【解决方案1】:

    你试过BitmapDrawable吗?

    Bitmap bitmap = getYourBitmap();
    BitmapDrawable drawable = new BitmapDrawable(bitmap);
    drawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
    someView.setBackground(drawable);
    

    【讨论】:

    • 我正在通过 Canvas 绘制位图。我对我的游戏没有任何意见:/
    • @YektaSarıoğlu 您也可以将此位图直接设置到您的画布上,而不是将其设置为某个视图的背景。
    • 我确实在我的一个布局上使用过,但由于线程权限而导致错误,如下所示。 android.view.ViewRootImpl$CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能接触其视图。它没有解决我的问题,但还是谢谢:)
    • @YektaSarıoğlu 如果这是您的问题,您是否尝试过在 UIThread 中使用 runOnUiThread(new Runnable(){});功能?
    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多