0

いくつかの論理を理解するのを手伝ってください。私は次の方法で再描画する写真を持っています:

public void onClick(View v) {
        BitmapDrawable mydrawable = (BitmapDrawable) imageView.getDrawable();
        Bitmap b = mydrawable.getBitmap();
        b = doHighlightImage(b);
        imageView.setImageBitmap(b);
    }
});

public static Bitmap doHighlightImage(Bitmap src) {
    // создадим новый битмап, который станет итоговым
    Bitmap bmOut = Bitmap.createBitmap(src.getWidth() + 96,
            src.getHeight() + 96, Bitmap.Config.ARGB_8888);
    // подключаем холст
    Canvas canvas = new Canvas(bmOut);
    // установим цвет по умолчанию
    canvas.drawColor(0, PorterDuff.Mode.CLEAR);

    // создадим размытие для прозрачности
    Paint ptBlur = new Paint();
    ptBlur.setMaskFilter(new BlurMaskFilter(15, Blur.NORMAL));
    int[] offsetXY = new int[2];
    // получим прозрачный слепок из изображения
    Bitmap bmAlpha = src.extractAlpha(ptBlur, offsetXY);
    // готовимся к рисованию
    Paint ptAlphaColor = new Paint();
    ptAlphaColor.setColor(0xFFFFFFFF);
    // закрашиваем цветом цветной слепок (bitmap)
    canvas.drawBitmap(bmAlpha, offsetXY[0], offsetXY[1], ptAlphaColor);
    // освобождаем ресурсы
    bmAlpha.recycle();

    // рисуем исходник
    canvas.drawBitmap(src, 0, 0, null);

    // возвращаем финальный рисунок
    return bmOut;
}

しかし、再描画した後、画像の初期状態を返さなければなりません。これを行う方法?

4

1 に答える 1