我创建了自己的控制器来使用 android 相机拍照。我的问题是输出显示的图像比预期的要小。我检查了我的位图的宽度和高度,如下所示:
int w = bmp.getWidth();
int h = bmp.getHeight();
这个输出w = 480
,h = 640
我假设是像素大小。这是我的拍照方法
public void takePicture() {
Log.i("Camera View: ", "Take Picture");
camera.takePicture(null, null, new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
if (null != callback) {
callback.onJpegPictureTaken(data, camera);
}
}
});
}
我Activity
订阅此活动的地方onJpegPictureTaken
@Override
public void onJpegPictureTaken(byte[] data, Camera camera) {
Intent i = new Intent(this, ImageEditing.class);
i.putExtra("image", data);
startActivity(i);
}
这样做的目的是启动一个新Activity
的以编辑图像,如缩放和拖动。这个 ImageEditing.class 得到这样的图片:
flipped = flipByteArrayNintyDegress(getIntent().getExtras()
.getByteArray("image"));
Bitmap bmp = BitmapFactory.decodeByteArray(flipped, 0, flipped.length);
image = (ImageView) findViewById(R.id.imageView1);
image.setImageBitmap(bmp);
image.setOnTouchListener(this);
我首先认为ImageView
由于 的高度和宽度,我有一些限制ImageView
,但事实并非如此。这是布局 XML:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="matrix"/>
</FrameLayout>
这是我捕获图像时的结果
有人知道这里发生了什么吗?为什么要缩放图像?