【问题标题】:Images(Bitmap) are disappearing while drawing on canvas on surfaceview在surfaceview的画布上绘图时图像(位图)正在消失
【发布时间】:2013-10-22 08:04:57
【问题描述】:

我想使用表面视图在画布上绘制 13 个不同的位图(显然,使用表面视图还有其他一些原因)。为此,我启动了一个游戏线程,在其中我调用了无限循环中的表面视图方法,并在此方法中循环绘制 13 个不同的位图。

但在三星 Galaxy s3、galaxy s2 等手机和摩托罗拉设备中,我的一些位图在某个时间点后就消失了。

这是我绘制位图的代码:

for (int i = 0; i < 13; i++) {              

            // Drawing Bushes
            canvas.drawBitmap(assets.bushes[this.bushes[i].frameNo - 1], null,
                    camera.getScaledRect(bushes[i].bounds.getRect()),
                    bitmapPaint);

            /*
             * drawBitmap(canvas, bushes[i],
             * assets.bushes[this.bushes[i].frameNo - 1], camera);
             */

            // Drawing Waves
            if (waves[i].alpha != 0) {
                bitmapPaint.setAlpha((int) (waves[i].alpha * 255));
                canvas.drawBitmap(assets.waves[this.waves[i].frameNo - 1],
                        null, camera.getScaledRect(waves[i].bounds.getRect()),
                        bitmapPaint);
                bitmapPaint.setAlpha(255);
            }    

        }

【问题讨论】:

    标签: android bitmap surfaceview


    【解决方案1】:

    这可能是一个答案。较旧的设备可能跟不上。只需尝试对位图进行采样。这增加了我的表现。似乎屏幕在密集时被擦拭。虽然质量有点损失。

    http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

    public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight);

    public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多