1

ご覧の画像のように、画像に負のマージンを設定overflow:hiddenし、その親要素に設定することでトリミングできます.Androidでどうすればよいですか? 強力な Bitmap クラスを使えば、切り抜いて新しい画像を作成できると思います。ある程度の幅のマージンやレイアウトを行うなど、より簡単な方法はありますか?


ここに私の解決策があります:私は今より良い方法を見つけ、私の問題のほとんどを解決しました:

imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);

オプションのコード (少し負のマージンを設定します (実際にはパディング))

imageview.setPadding(-5, -10, -5, -10);

親の幅または高さに合わせて画像のサイズを変更し、自動的に中央に配置します

4

2 に答える 2

1

com.android.camera.action.CROP次のように使用して画像をトリミングできます

File tempFile = new File("mnt/sdcard/Images/beijingtesttemp.jpeg");//Image path which u want to crop
Intent intent = new Intent("com.android.camera.action.CROP");  
intent.setDataAndType(Uri.fromFile(tempFile), "image/*");
intent.putExtra("crop", "true"); 
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 96); 
intent.putExtra("outputY", 96);
intent.putExtra("output", Uri.fromFile(tempFile)); 
intent.putExtra("outputFormat", "JPEG");
startActivityForResult(intent,PHOTOR);  

onActivityResult使用してトリミングされた画像を取得しますdata.getExtras()

 @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
            if (resultCode == NONE)  
                return;  
            if (requestCode == PHOTOR) {  
                Bundle extras = data.getExtras();  
                if (extras != null) {  
                     // get cropped image as bitmap here
                    Bitmap photo = extras.getParcelable("data");  

                }  
            }  
            super.onActivityResult(requestCode, resultCode, data);  
        }
于 2012-06-23T13:53:02.080 に答える
1
android:scaleType="centerCrop" 

素晴らしいですが、実際には画像をトリミングしません。適切にトリミングするには、次も使用する必要があります。

android:cropToPadding="true"
于 2014-09-26T04:18:47.623 に答える