-1

这是我的问题,我在 ListView 中显示一些图片来自网络。我想在我的 ImageView 中只显示我的图片的特定区域,而不调整它的大小。

这是一个具体的例子: https ://docs.google.com/file/d/0B6J9AVdWXjwuWld5dU5CWXFSTjQ/edit?usp=sharing

我认为使用 Bitmap 方法是可能的,但我真的不知道该怎么做......

感谢您的提示

4

1 回答 1

0

是的,这样做的方法是从源图像中创建一个位图对象。这是一个例子:

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());

“目标”对象是您所要求的

于 2013-04-19T13:15:14.423 回答