这不是一个问题,而是我正在处理的应用程序的要求。我在该活动中有一个活动和一个片段。这是片段的布局:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
tools:context=".NavigationActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/avaImage"
android:layout_width="687dp"
android:layout_height="438dp"
android:gravity="right|center_vertical"
android:layout_above="@+id/txtLabel"
android:layout_marginTop="40dp"
/>
<TextView
android:id="@+id/txtLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="92dp"
android:layout_marginTop="20dp"
android:text="Available"
android:textSize="26sp" />
</RelativeLayout>
</ScrollView>
我以编程方式将imageView
的{{1}}包含在一个可绘制的资源中。
src
图像在纵向方向上非常好用,但在横向方向上,图像缩小了。 所以,我的问题是,有没有办法控制图像在屏幕旋转时缩小多少,确保它在Android设备上显示相同的方式?
答案 0 :(得分:1)
使用ImageView.ScaleType指定图片处理尺寸更改的方式。这两个属性将保持原始宽高比:
CENTER_INSIDE 均匀缩放图像(保持图像的纵横比),使图像的尺寸(宽度和高度)等于或小于视图的相应尺寸(减去填充)。
CENTER_CROP 均匀缩放图像(保持图像的纵横比),使图像的尺寸(宽度和高度)等于或大于视图的相应尺寸(减去填充)。
答案 1 :(得分:0)
试试这段代码:
@Override
public void onConfigurationChanged( Configuration newConfig)
{
super.onConfigurationChanged( newConfig);
SCREEN_WIDTH = contextApplication.getResources().getDisplayMetrics().widthPixels;
SCREEN_HEIGHT = contextApplication.getResources().getDisplayMetrics().heightPixels;
if( SCREEN_WIDTH < SCREEN_HEIGHT) // portret
{
image.setAdjustViewBounds( true);
image.setScaleType( ScaleType.CENTER_INSIDE);
image.setMaxWidth( 10);
image.setMinimumWidth( 10);
image.setMaxHeight( 10);
image.setMinimumHeight( 10);
}
else // land or square (if this is exist :) )
{
image.setAdjustViewBounds( true);
image.setScaleType( ScaleType.CENTER_INSIDE);
image.setMaxWidth( 20);
image.setMinimumWidth( 20);
image.setMaxHeight( 20);
image.setMinimumHeight( 20);
}
}
并将android:configChanges="keyboardHidden|orientation"
添加到AndroidManifest中的活动