0

我有一个ImageButton,当我按下它时,我可以用我的手机拍照。当我拍照时,ImageButtons 将图片作为其来源。但问题是,图像没有按比例缩小到 ImageButton 的尺寸。它只是在 Imagebutton 中显示图像的一部分,而不是按比例缩小。在做了一些研究之后,我看到你必须使用一个平局 9 补丁。但在这种情况下这是不可能的,因为图像不在我的资源中,它们是由用户自己制作的。

有人可以帮我弄这个吗?

我的代码:

if (requestCode == REQUEST_CAMERA) {
    File f = new File(Environment.getExternalStorageDirectory().toString());
    for (File temp : f.listFiles()) {
        if (temp.getName().equals("temp.jpg")) {
            f = temp;
            break;
        }
    }

    try {
        Bitmap bm;
        BitmapFactory.Options btmapOptions = new BitmapFactory.Options();
        bm = BitmapFactory.decodeFile(f.getAbsolutePath(),btmapOptions);
        // bm = Bitmap.createScaledBitmap(bm, 70, 70, true);
        btnImg.setImageBitmap(bm);
        String path = android.os.Environment.getExternalStorageDirectory() + File.separator + "Phoenix" + File.separator + "default";
        f.delete();
        OutputStream fOut = null;
        File file = new File(path, String.valueOf(System.currentTimeMillis()) + ".jpg");

        try {
                fOut = new FileOutputStream(file);
            bm.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
            fOut.flush();
            fOut.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
            e.printStackTrace();
        }
            }
} 
else if (requestCode == SELECT_FILE) {
Uri selectedImageUri = data.getData();
String tempPath = getPath(selectedImageUri, MainActivity.this);
Bitmap bm;
BitmapFactory.Options btmapOptions = new BitmapFactory.Options();
bm = BitmapFactory.decodeFile(tempPath, btmapOptions);
btnImg.setImageBitmap(bm);
}
4

1 回答 1

0

使用 ImageView 的方法setScaleTypeScaleType.CENTER_INSIDE作为参数传递。

btnImg.setImageBitmap(bm);
btnImg.setScaleType(ScaleType.CENTER_INSIDE);
于 2013-05-04T19:21:17.220 回答