Android:我们在图库中看到的图像而不是Stretch图像

时间:2012-02-06 11:05:56

标签: android android-layout bitmap camera gallery

在我的应用程序中,我使用此代码从图库和相机中获取图像:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) {     
    super.onActivityResult(requestCode, resultCode, data);     
    if (requestCode == 10 && resultCode == Activity.RESULT_OK) {             
        Uri contentUri = data.getData();          
        String[] proj = { MediaStore.Images.Media.DATA };         
        Cursor cursor = managedQuery(contentUri, proj, null, null, null);         
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);         
        cursor.moveToFirst();         
        imagePath = cursor.getString(column_index);           
        //Bitmap croppedImage = BitmapFactory.decodeFile(imagePath);
        tempBitmap = BitmapFactory.decodeFile(imagePath);
        if(!(tempBitmap == null))
        {
            // here i am changing display to the tempBitmap
            photoBitmap = Bitmap.createScaledBitmap(tempBitmap, display.getWidth(), display.getHeight(), true);
            //photoBitmap = Bitmap.createBitmap(tempBitmap, 0, 0, tempBitmap.getWidth(), tempBitmap.getHeight());
            takePhotoFromGallery = true;// edited
        }
        else
            Toast.makeText(getApplicationContext(), "Image is not valid", Toast.LENGTH_SHORT).show();

    } 
    if(resultCode == RESULT_OK && requestCode==TAKE_PHOTO_CODE){
         final File file = getTempFile(this);         
         try {           
             tempBitmap = Media.getBitmap(getContentResolver(), Uri.fromFile(file));
             photoBitmap = Bitmap.createScaledBitmap(tempBitmap, display.getWidth(), display.getHeight(), true);
             takePhotoFromCamera = true;
             // do whatever you want with the bitmap (Resize, Rename, Add To Gallery, etc)         
        } catch (FileNotFoundException e) {           
            e.printStackTrace();         
        } catch (IOException e) {           
            e.printStackTrace();         
        } 
    }
}

现在,一切正常。但是我把Image作为Stratch。

我认为这是因为这一行:

photoBitmap = Bitmap.createScaledBitmap(tempBitmap, display.getWidth(), display.getHeight(), true);

这里我正在抓住图像宽度,高度与显示器的宽度,高度。

我想要的是Image应该是Dispaly,因为我们可以在画廊中正常显示图像。那么如何才能实现呢?

这是我从相机拍摄的图像:

enter image description here

现在这就是我在申请中看到的内容:

enter image description here

现在第二张图片几乎没有了。因为那行代码。

那么我需要做些什么才能使它的高度和宽度正常? 谢谢。 感谢。

1 个答案:

答案 0 :(得分:1)

使用ImageView并将图像视图的比例类型设置为Center-Inside。