このhttp://www.androidhub4you.com/2012/07/how-to-crop-image-from-camera-and.htmlに従って、画像をトリミングします。
コラージュ フレームに 4 ~ 5 個の ImageView があります。すべての Imageview で、デフォルトのイメージを設定しました。特定のイメージビューをクリックすると、ギャラリーからイメージを選択してイメージをトリミングします。ImageView でトリミングされたイメージを設定する必要があります。したがって、トリミングされた画像を設定した後、ImageView のサイズが変更され、そのため他の ImageView のサイズも異なります。Imageview でトリミングされた画像を設定している間、ImageView のサイズを変更してはなりません。
結果のトリミングされた画像のサイズは異なる場合があるため、トリミングする前に ImageView サイズを取得し、トリミング後に結果のビットマップをイメージ ビューと同じサイズにスケーリングしています。
コーディングサンプルは打撃です。
このように Imageview の高さと幅を取得しています
viewhight = tempView.getMeasuredHeight();
viewWidth = tempView.getMeasuredWidth();
画像をトリミングした後、このようにビューの高さと幅に応じて画像をスケーリングしました
Bitmap photobitmap1 = Bitmap.createScaledBitmap(photobitmap, viewWidth,viewhight, true);
この後、このように描画可能に変更し、Imageview に設定しました。
Drawable drawble = new BitmapDrawable(getResources(),photobitmap1);
tempView.setBackground(drawble);
しかし、ビューの高さと幅を設定するとサイズが変更され、この近くの画像ビューのサイズも変更されるため、理由がわからない.画像ビューを同じサイズのビューに変換したため.
ビットマップをスケーリングするためにこれも試しました:
Bitmap photobitmap1 = Bitmap.createScaledBitmap(photobitmap, (viewWidth-30), (viewhight-30), true);
そしてこれはビットマップを設定します:
tempView.setImageBitmap(photobitmap1);
tempView.setBackgroundColor(Color.TRANSPARENT);
しかし、何も機能しませんでした。
私のxmlコードは次のようなものです:
<LinearLayout
android:id="@+id/fst"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/frame"
android:orientation="vertical"
android:paddingBottom="10dp"
android:paddingLeft="85dp"
android:paddingRight="85dp"
android:paddingTop="10dp"
>
<ImageView
android:id="@+id/viw_1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="2.5dp"
android:layout_weight="1"
android:background="@drawable/rec"
/>
<ImageView
android:id="@+id/viw_2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginTop="2.5dp"
android:background="@drawable/rec"
/>
</LinearLayout>
誰でも私を助けてください.....