Bạn muốn chuyển
ảnh qua activity khác, thông thường đó là một ảnh chụp màn hình của ứng dụng
đang chạy. Ví dụ khi người dùng đang chơi dở game thì hết giờ, ta bật ra thông
báo game over kèm theo ảnh chụp để người dùng biết họ đang chơi đến đâu. Ta không
gửi trực tiếp được như với chuỗi hay số mà cần thêm vài dòng code.
layout.setDrawingCacheEnabled(true); layout.setDrawingCacheQuality(LinearLayout.DRAWING_CACHE_QUALITY_HIGH);
layout.buildDrawingCache();
Bitmap
b = layout.getDrawingCache();
ByteArrayOutputStream stream = new
ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Intent in = new
Intent(MainActivity.this, newclass.class);
in.putExtra("image",byteArray);
startActivity(in);
layout tức là
LinearLayout bạn set cho toàn bộ màn hình muốn chụp. Ta chụp ảnh màn hình ứng dụng
đang chạy, rồi biến nó thành dạng byte và chuyển đi.
Tại class mới
ta nhận về ảnh bitmap rồi set nó vào imageView bằng các lệnh:
byte[] byteArray =
getIntent().getByteArrayExtra("image");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray,
0, byteArray.length);
image.setImageBitmap(bmp);
Nếu ảnh to quá, ta muốn nó nhỏ đi, chỉ còn 60% chẳng hạn, ta
thêm và các lệnh.
int srcWidth = bmp.getWidth();
int srcHeight = bmp.getHeight();
int dstWidth = (int)(srcWidth*0.6f);
int dstHeight = (int)(srcHeight*0.6f);
image.setImageBitmap(Bitmap.createScaledBitmap(bmp,
dstWidth, dstHeight,
true));
This comment has been removed by a blog administrator.
ReplyDelete