我正在尝试使用相机单击照片,然后将其显示在imageView中。最初,图像看起来非常小,并且不适合imageView。但是,在阅读了几篇博客后,我对代码进行了以下更改:
photo = android.provider.MediaStore.Images.Media.getBitmap(cr,Uri.fromFile(tempPhoto));
//image.setImageBitmap(photo);
Drawable drawable = new BitmapDrawable(getResources(), photo);
image.setBackground(drawable);
image.setScaleType(ScaleType.FIT_CENTER);
我的布局文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<AutoCompleteTextView
android:id="@+id/location"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="1dip"
android:background="@color/translucent_grey"
android:ems="10"
android:hint="@string/hint_location"
android:inputType="text"
android:textSize="14sp" >
<requestFocus />
</AutoCompleteTextView>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="200dp" >
<ImageButton
android:id="@+id/snap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/image"
android:layout_alignParentRight="true"
android:layout_marginBottom="108dp"
android:layout_marginRight="160dp"
android:background="@color/white"
android:src="@drawable/camera" />
<ImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:orientation="horizontal" />
</RelativeLayout>
<FrameLayout
android:id="@+id/datetime_container"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginBottom="2dp" />
<FrameLayout
android:id="@+id/eventDetails_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp" />
</LinearLayout>
</ScrollView>
添加后,图像拉伸太多,看起来很长。我的目标是使图像适合屏幕宽度,然后具有灵活的图像高度,以便可以保持比例(就像fb modile显示纵向和横向图像适合屏幕宽度的方式)
有谁知道怎么做?
答案 0 :(得分:1)
将此参数用于ImageView
android:scaleType="fitXY"
答案 1 :(得分:1)
使用:
image.setScaleType(ScaleType.FIT_XY);
然后尝试以编程方式设置imageView的高度。
答案 2 :(得分:1)
使用参数
android:adjustViewBounds="true"
android:scaleType="fitXY"
答案 3 :(得分:0)
看到你的代码后,你不应该使用fill parent来实现使用包装内容。
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"//fill_parent
android:layout_height="wrap_content"//fill_parent
android:layout_alignParentLeft="true"
android:orientation="horizontal" />
答案 4 :(得分:0)
通常ImageView
使用setImageDrawable(drawable);
因为ImageView自己关注缩放和拉伸,你可以使用 scaleType 根据你的要求
答案 5 :(得分:0)
这是我的代码:
photo = android.provider.MediaStore.Images.Media.getBitmap(cr, Uri.fromFile(tempPhoto));
//image.setImageBitmap(photo);
Drawable drawable = new BitmapDrawable(getResources(), photo);
image.setBackground(drawable);
image.setScaleType(ScaleType.FIT_XY);
布局文件
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageButton
android:id="@+id/snap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/image"
android:layout_alignParentRight="true"
android:layout_marginBottom="108dp"
android:layout_marginRight="160dp"
android:background="@color/white"
android:src="@drawable/camera" />
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:adjustViewBounds="true"
android:orientation="horizontal" />
</RelativeLayout>
这是我的输出: