android布局在方向更改时加载不同的图像资源

1 android android-layout

我想在xml或关键字中找到解决问题的解决方案:

我有多个屏幕.每个屏幕都有自己的xml layout文件夹.例如,代码的一部分:

   <RelativeLayout
        android:id="@+id/headerLayout"
        android:layout_width="fill_parent"
        android:layout_height="80dp"
        android:background="@drawable/header" >

        <Button
            android:id="@+id/btBack"
            android:layout_width="55dp"
            android:layout_height="33dp"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="10dip"
            android:layout_marginTop="10dip"
            android:background="@drawable/bt_back"
             />

    </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

现在,我想"@drawable/header"在旋转时更改 值运行时,可以在Java代码中进行配置和Android更改.完成同样的事情
"@drawable/bt_back",它是bt_back.xml文件drawable夹中的文件并具有选择器.他的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- selected state -->
    <item android:drawable="@drawable/bt_back_pressed" android:state_pressed="true" android:state_selected="false"/>
    <item android:drawable="@drawable/bt_back_pressed" android:state_pressed="false" android:state_selected="true"/>
    <item android:drawable="@drawable/bt_back_pressed" android:state_pressed="true" android:state_selected="true"/>
    <!-- unselected state (default) -->
    <item android:drawable="@drawable/bt_back_normal"/>

</selector>
Run Code Online (Sandbox Code Playgroud)

现在在文件夹中我想要drawable-hdpi,drawable-ldpi,我只需要放置那两个文件,并且android系统根据用户设备dpi自动处理按下和正常状态的图像更改.

我希望从纵向和横向旋转标题的同样的事情.例如,它应该将header_port.png替换为header-land.png.

怎么可能?有任何想法吗?

我没有为横向绘制不同的.xml布局,也没有在java代码中挖掘.也许在不同的文件夹中为头文件的资源,在这里描述?港口和土地?

小智 5

您可以创建一个drawable-land-hdpi目录.将您的横向版本放在合格的文件夹中,android应自动为您加载它们.