如何调整图像大小

时间:2013-06-27 14:17:21

标签: android image

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

3 个答案:

答案 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,有或没有缩放和裁剪等。