ここにある ViewPagerParallax から背景を保存しようとしています:リンク
移動すると背景が変わるので、この背景の「一部」を別のアクティビティに渡したいと思います。
あるアクティビティから別のアクティビティに渡すには、次のことができます。
Intent intent = new Intent(context, Activity2.class);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
//Bitmap bmp = pager.getSavedBitmap().getBitmap();
Bitmap bmp = pager.getBitmap();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
intent.putExtra("image",byteArray);
context.startActivity(intent);
byte[] byteArray = getIntent().getByteArrayExtra("image");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
@SuppressWarnings("deprecation")
Drawable d = new BitmapDrawable(bmp);
layout.setBackground(d);
しかし、必要な背景の一部を取得するのは難しいことを知っています。次のように onDraw メソッドから取得しようとしています:
canvas.drawBitmap(saved_bitmap, src, dst, null);
if(canvas != null){
my_bitmap = new BitmapDrawable();
my_bitmap.draw(canvas);
}
しかし、 getBitmap を使用すると:
public Bitmap getBitmap(){
return my_bitmap.getBitmap();
}
画像は、最初のアクティビティのように拡大縮小されていません。