在imageview内缩小图像源

时间:2017-01-10 08:03:56

标签: android image imageview

所以我在ImageView内有一个图像源。我试着通过编写android:padding="25dp"来减小源的大小。

enter image description here

但是当我拍摄图像并显示imageView时,就会变成这样。捕获的图像不适合ImageView

enter image description here

  1. 我是否有办法缩小ImageView中的来源,但允许捕获的图像适合ImageView?这是我的代码:

    <ImageView
            android:layout_height="150dp"
            android:layout_width="150dp"
            android:background="@color/light_gray"
            android:padding="25dp"
            android:src="@drawable/camera"
            android:scaleType="fitXY"
            android:adjustViewBounds="true"
            android:id="@+id/imageView" />
    
  2. 有没有办法删除捕获的图像但不删除源?我使用下面的代码,但它删除了包括源代码在内的所有内容。

    imageView.setImageDrawable(null);

  3. 修改

    尝试将按钮放在imageView的中心

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_below="@+id/toolbar"
            android:layout_height="fill_parent">
    
            <ImageView
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:id="@+id/imageView1"
                android:layout_alignParentTop="true"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true"
                android:layout_marginRight="42dp"
                android:layout_marginEnd="42dp" />
    
            <Button
                android:layout_width="40dp"
                android:background="@drawable/camera"
                android:layout_height="40dp"
                android:id="@+id/imageButtonOne"
                android:layout_centerVertical="true"
                android:layout_alignLeft="@+id/imageView1"
                android:layout_marginStart="25dp"
                android:layout_marginLeft="25dp" />
    
            </RelativeLayout>
    

1 个答案:

答案 0 :(得分:1)

使用Button调用图库或相机:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_below="@+id/toolbar"
android:layout_height="fill_parent">

<ImageView
    android:layout_width="100dp"
    android:layout_height="120dp"
    android:id="@+id/imageView1"
    android:layout_marginRight="42dp"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

<Button
    android:layout_width="40dp"
    android:background="@mipmap/ic_launcher"
    android:layout_height="40dp"
    android:id="@+id/imageButtonOne"
    android:layout_centerVertical="true"
    android:layout_alignLeft="@+id/imageView1"
    android:layout_marginStart="25dp"
    android:layout_marginLeft="25dp" />

<ImageButton
    android:layout_width="25dp"
    android:layout_height="25dp"
    android:id="@+id/your_delete_button_id"
    android:background="@mipmap/ic_launcher"
    android:layout_alignBottom="@+id/imageView1"
    android:layout_alignStart="@+id/imageView1"
    android:layout_marginStart="35dp" />

</RelativeLayout>

使用代码:

    // buttons to access camera or gallery for input images
    Button imageButtonOne = (Button) findViewById(R.id.imageButtonOne);
    imageButtonOne.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //invoke camera or gallery
        }
    });

    // image upload camera button are visible at first
    imageButtonOne.setVisibility(View.VISIBLE);

选择图像并准备放入ImageView后,请在onActivityResult()中使用此图片

imageButtonOne.setVisibility(View.GONE);

删除按钮仅删除图像:

    // image-delete button
    ImageButton buttonDelete1 = (ImageButton) findViewById(R.id.your_delete_button_id);
    buttonDelete1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (your_imageView != null) {
                // delete image from your_imageView
                your_imageView.setImageBitmap(null);
                // enable your camera_button again
                imageButtonOne.setVisibility(View.VISIBLE);

            } else {
               //say something
            }
        }
    });