私のアプリケーションは、スマートフォンのカメラで写真を撮ります。写真をキャプチャした後、写真を ImageView に割り当てたいと思います。しかしその後、ImageView のサイズが変わります。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE
&& resultCode == Activity.RESULT_OK) {
ContentResolver cr = getContentResolver();
Bitmap bitmap = null;
Bitmap scaledBitmap = null;
InputStream in = null;
Image image = this.getActualImage();
try {
in = cr.openInputStream(this.imageUri);
BitmapFactory.Options o = new BitmapFactory.Options();
o.inSampleSize = 1;
bitmap = BitmapFactory.decodeStream(in, null, o);
ImageView view = null;
view = (ImageView) findViewById(R.id.img_face1);
int height = view.getHeight();
int width = view.getWidth();
Log.i(TAG, "Scale operation dimenions - width: " + width
+ ", height: " + height);
scaledBitmap = Bitmap.createScaledBitmap(bitmap, width, height, true);
view.setImageBitmap(scaledBitmap);
System.gc();
in.close();
} catch (Exception e) {
Log.e("Camera", e.toString());
}
私のレイアウト xml は次のようになります。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/screen_capture_face2"
style="@style/linearLayoutVertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="2" >
<ImageView
android:id="@+id/img_face1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:adjustViewBounds="true"
android:contentDescription="@string/desc_dummy_face"
android:src="@drawable/dummy_face"
/>
<ImageView
android:id="@+id/img_face2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:adjustViewBounds="true"
android:contentDescription="@string/desc_dummy_face"
android:src="@drawable/dummy_face"
/>
</LinearLayout>
ビットマップを ImageView img_face1 に割り当てた後、サイズが変わります。なぜこれが起こるのですか?私は何が欠けていますか?私はAndroidが初めてで、ちょっとした間違いかもしれません。