我有一个Android应用程序,我正在使用Android相机拍照。
这张照片是在activity A
中拍摄的,之后会被发送到编辑的activity B
。
这是我在activity B
中收到我的图片的方式:
Bundle extras = getIntent().getExtras();
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 5;
byte[] imageData = extras.getByteArray("imageData");
Bitmap myImage = BitmapFactory.decodeByteArray(imageData , 0, imageData.length,options);
Matrix mat=new Matrix();
mat.postRotate(90);
bitmapResult = Bitmap.createBitmap(myImage, 0, 0, myImage.getWidth(), myImage.getHeight(), mat, true);
ImageView imageView = (ImageView) findViewById(R.id.myPic);
imageView.setImageBitmap(bitmapResult);
正如你所看到的那样,我正在使用90来旋转我收到的bitmap
:
Matrix mat=new Matrix();
mat.postRotate(90);
这是xml文件中的imageView
:
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:id="@+id/myPic"
/>
我面临的问题是我的照片不是全屏......它是完整的screnn而不是整齐的。正如你在这里看到的那样:
如果你可以帮助我增加一点点的尺寸,我会真的很赞成它。谢谢
编辑:我只想增加图像的宽度。请!答案 0 :(得分:5)
您可以使用ImageView.ScaleType
ImageView.ScaleType="CENTER_CROP"
答案 1 :(得分:4)
您可能需要裁剪图像。因为图像不是全高,所以图像的宽度按比例缩小,因此两侧的黑色条带。
更具体地说,使用手机的相机拍摄的图像可能是准确地适合屏幕,即图像的宽高比=屏幕的宽高比。但是,在您的应用程序中,图像的高度受到顶部按钮的限制,因此为了保持图像的宽高比,图像的宽度按比例缩小。
答案 2 :(得分:4)
请参阅setScaleType
您可以使用CENTER_CROP
获取全屏图像并保持图像的宽高比。