我正在尝试调整从相机库中获取的图像,以使ImageView适合其他活动。我正在拍照。我只需要知道如何调整它以适应ImageView。
image1.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 0);
}
});
}
protected void putExtras(Bundle bundle) {
// TODO Auto-generated method stub
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == 0) {
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
System.out.println("Image Path : " + selectedImagePath);
image1.setImageURI(selectedImageUri);
}}}
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
我的xml
<ImageView
android:id="@+id/image1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_margin="3dp"
android:layout_weight=".1"
android:background="@drawable/greenline" />
答案 0 :(得分:1)
您可以将android:scaleType
属性设置为ImageView。可以找到更多详细信息here。
答案 1 :(得分:1)
如果以编程方式执行,可以尝试使用Bitmap.createScaledBitmap()
答案 2 :(得分:1)
只有ImageView具有可以适合图像的已定义尺寸时,您的问题才有意义。当你将layout_width设置为wrap_content时,它就完全相反了。 ImageView将环绕图像,这似乎不是你想要的。因此,您需要对layout_width,layout_height使用match_parent或指定具体大小,如30dip等。一旦你有了,你就可以像其他人一样使用android:scaleType。
因此,将ImageView更改为以下内容:
<ImageView
android:id="@+id/image1"
android:layout_width="match_parent "
android:layout_height="match_parent "
android:scaleType="center"
android:layout_margin="3dp"
android:layout_weight=".1"
android:background="@drawable/greenline" />
您使用哪种scaleType取决于图像应如何适应ImageView,有或没有缩放和裁剪等。