0

我正在尝试调整从相机库中获取的图像的大小,以使 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" />                    
4

3 回答 3

1

您可以将android:scaleType属性设置为 ImageView。更多细节可以在这里找到。

于 2013-06-27T14:28:11.140 回答
1

如果以编程方式执行,您可以尝试使用 Bitmap.createScaledBitmap()

于 2013-06-27T14:31:06.970 回答
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,有或没有缩放和裁剪等。

于 2013-06-27T14:42:59.587 回答