いくつかの論理を理解するのを手伝ってください。私は次の方法で再描画する写真を持っています:
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;
}
しかし、再描画した後、画像の初期状態を返さなければなりません。これを行う方法?