私のアプリでは、画像をクリックするとフルスクリーニングを実装しました。プログラムでは、このようにして次のようになります。イメージビュー(カメラで作成されたイメージ)から次のアクティビティにビットマップを渡し、次のアクティビティはそれを受け入れ、イメージビューにビットマップを表示します。私はたくさんのイメージビューを持っており、問題があります。たとえば、カメラで垂直方向に写真を作り、次の写真を水平にすると、プレビュー画像のフルスクリーンイメージが高さに圧縮されます。ビットマップを次のアクティビティに渡し、スケーリングの問題
私は、次の1つのアクティビティからビットマップを渡す方法:
Bitmap bitmap = params[0];
int h = bm.getHeight();
int w = bm.getWidth();
bitmap = bitmap.createScaledBitmap(bitmap,w/2,h/2, true);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 50, baos);
byte[] b = baos.toByteArray();
Intent intent = new Intent(PhotoAdder.this, FullScreenImage.class);
intent.putExtra("picture", b);
startActivity(intent);
活動は、ビットマップを受け入れどのように次の:
Bundle extras = getIntent().getExtras();
byte[] b = extras.getByteArray("picture");
Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);
ImageView image = (ImageView) findViewById(R.id.full);
image.setImageBitmap(bmp);
次のアクティビティのImageViewの幅と高さがmatch_parentです。
あなたはすでにh/2でビットマップをスケーリングしています。 –
@Dheerubhai、私は知っていますが、前回書いたように、最後に作った絵に応じて次の活動でイメージのスケールを変えます。 – Bek
イメージのパスを取得する方法は、次のアクティビティに渡して、ビットマップを使用してイメージを再度読み込みます。 – nakul