2013-04-19 3 views
-1

Вот моя проблема, я показываю в ListView некоторые изображения из Интернета. Я хотел бы отобразить в своем ImageView только определенную область для моего изображения, без изменения размера.Отображение определенной области растрового изображения в изображенииView

Вот пример для бетона: https://docs.google.com/file/d/0B6J9AVdWXjwuWld5dU5CWXFSTjQ/edit?usp=sharing

Я думаю, что это возможно с помощью метода Bitmap, но я действительно не знаю, как это сделать ...

Спасибо за ваши советы

+0

вы пробовали это в файлах макета XML для ImageView => Android: scaleType = «» – SKK

+0

Спасибо за вашу помощь, Да, на самом деле мой образView находится в scaleType = «FIT_XY», но это не совсем то, что я ожидал ... – Angudroid

ответ

0

Да, способ сделать это - создать объект Bitmap из исходного изображения. Вот пример:

File thumbFile = new File(thumbFileDir, imageName); 
    //Bitmap source = your image 
    Bitmap target= Bitmap.createBitmap(thumbSize, thumbSize,Config.ARGB_8888); //in my case the thumb image is square, use your dimensions instead of "thumbSize, thumbSize" 
    Canvas canvas = new Canvas(target); 
    float hScale = thumbSize/(float)source.getWidth(); //again, thumb dimensions here 
    float vScale = thumbSize/(float)source.getHeight(); //and here 
    float scale = Math.max(hScale, vScale); 
    Matrix matrix = new Matrix(); 
    matrix.setScale(scale, scale); 
    matrix.postTranslate(thumbSize/2 - source.getWidth()/2 * scale, thumbSize/2 - source.getHeight()/2 * scale); //and here 
    canvas.drawColor(Color.BLACK); 
    canvas.drawBitmap(source, matrix, new Paint()); 

«целевой» объект, что вы просите

+0

Большое спасибо, я думаю, что я не далеко от успеха;) Чтобы отобразить мое новое изображение, мне нужно сделать my_image_view. setImageBitmap (источник); или цель? – Angudroid

+0

@AdrienCerdan target –

+0

Это работает отлично !! Спасибо Алекс;) – Angudroid

Смежные вопросы