Android, как обрезать изображение использовать XML как CSS

1

Как изображение вы видите, мы можем обрезать его, установив отрицательное поле на изображение и overflow:hidden к его родительскому элементу. Так как я могу сделать с ним в android? Я считаю, что мощный класс Bitmap может обрезать его и создать новое изображение. Есть ли более простой способ, например, сделать разметку или макет ширины?


Здесь есть мое решение: я нашел лучший способ только сейчас и решу большую часть своей проблемы:

imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);

необязательный код (установите немного отрицательного поля (на самом деле заполнение))

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

изменит размер изображения в соответствии с его шириной или высотой родителя и автоматически сделает его центром

Теги:
crop
imageview
margin

2 ответа

1
android:scaleType="centerCrop" 

это здорово, но на самом деле это не обрезает изображение. Чтобы правильно обрезать его, вы также должны использовать:

android:cropToPadding="true"
1

Вы можете обрезать изображение, используя com.android.camera.action.CROP as

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);  
        }
  • 0
    о ~~ спасибо, сейчас я нахожу лучший способ: imageview.setScaleType (ImageView.ScaleType.CENTER_CROP); изменит размер изображения в соответствии с шириной или высотой его родителя и автоматически сделает его центром

Ещё вопросы

Сообщество Overcoder
Наверх
Меню