添加图像时,顶部和底部出现空格

时间:2014-04-29 05:31:29

标签: android android-imageview

我使用以下代码添加图片:

void choosePic()
{
  Intent intent = new Intent();
  intent.setType("image/*");
  intent.setAction(Intent.ACTION_GET_CONTENT);
  intent.addCategory(Intent.CATEGORY_OPENABLE);
  startActivityForResult(intent, GALLERY_IMAGE_ACTIVITY_REQUEST_CODE);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
     super.onActivityResult(requestCode, resultCode, data);



     LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
                                                  LinearLayout.LayoutParams.WRAP_CONTENT,
                                                  LinearLayout.LayoutParams.WRAP_CONTENT);



     if(resultCode == Activity.RESULT_OK && null != data)
     {


         case GALLERY_IMAGE_ACTIVITY_REQUEST_CODE:
              try {
                  // We need to recyle unused bitmaps
                  if (myBitmap != null) {
                      myBitmap.recycle();
                  }
                  InputStream stream = getActivity().getContentResolver().openInputStream(data.getData());
                  myBitmap = BitmapFactory.decodeStream(stream);
                  stream.close();
                  photo.setVisibility(View.VISIBLE);                      
                  photo.setImageBitmap(myBitmap);
                  photo.requestLayout();
                  photo.setLayoutParams(layoutParams);

              } catch (FileNotFoundException e) {
                  e.printStackTrace();
              } catch (IOException e) {
                  e.printStackTrace();
              }
             return;

         default:
             return;

         }
     }

我的问题是,在添加后,我会在图像的顶部和底部获得空白(大量的空间)。我明白这是因为图像视图调整大小,但我不知道如何摆脱空白。

图像视图的布局(及其邻居):

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true" >

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/pic"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:visibility="gone"
            android:layout_gravity="center"
            android:scaleType="fitCenter"
             />

        <EditText
            android:id="@+id/body"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:autoLink="all"
            android:fadeScrollbars="true"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:gravity="top"
            android:hint="@string/noteshint"
            android:inputType="textMultiLine"
            android:linksClickable="true"
            android:scrollbars="vertical" />
    </LinearLayout>
</ScrollView>

注意:我为android:scaleType元素尝试了不同的值

我的问题是,当我添加图像时,如何摆脱图像视图顶部的空白区域和按钮?

此外,还有更好的方法吗?我也在相机中添加照片。

3 个答案:

答案 0 :(得分:0)

将比例类型设置为fitxy

android:scaleType="fitXY"

如果那个空间因为EditText 删除此行

 <EditText
            android:id="@+id/body"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"<-----------
            android:layout_weight="1"
            android:autoLink="all"
            android:fadeScrollbars="true"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:gravity="top"
            android:hint="@string/noteshint"
            android:inputType="textMultiLine"
            android:linksClickable="true"
            android:scrollbars="vertical" />

答案 1 :(得分:0)

试试这个:

public synchronized Dimension getValues() { 
    return SerializationUtils.clone(d); 
    // OR return new Dimension(d.width, d.height);
}

自:
https://stackoverflow.com/a/5857153/7218947

答案 2 :(得分:0)

我设法使用

解决了这个问题
android:adjustViewBounds="true"
android:scaleType="fitCenter"