我已经创建了一个WiFi小部件。它的大小正在减小,同时将方向从纵向更改为横向。我使用的布局如下所示。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center" >
<ImageView
android:id="@+id/wifi_background"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<!--<TextView
android:id="@+id/wifi_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_marginTop="5dip"
android:layout_marginLeft="35dip"
android:layout_gravity="center_horizontal" />
-->
</LinearLayout>
<TextView
android:id="@+id/wifi_off"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_gravity="center_horizontal"
android:layout_marginTop="15dip"
android:layout_marginLeft="25dip"
android:textColor="@android:color/white"
android:textSize="15dip"
/>
<TextView
android:id="@+id/wifi_notconnected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_marginTop="43dip"
android:layout_marginLeft="35dip"
android:layout_gravity="center_horizontal"
android:textSize="14dip" />
<TextView
android:id="@+id/wifi_connecting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_marginTop="8dip"
android:layout_marginLeft="33dip"
android:layout_gravity="center_horizontal"
android:textSize="14dip" />
<TextView
android:id="@+id/wifi_obtaining"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dip"
android:layout_marginLeft="40dip"
android:textColor="@android:color/white"
android:textSize="10dip"
/>
<TextView
android:id="@+id/wifi_on"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dip"
android:layout_marginLeft="40dip"
android:textColor="@android:color/white"
android:textSize="10dip"
/>
<ImageView
android:id="@+id/wifi_signal_strength"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<FrameLayout android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginTop="5dip">
<ImageView
android:id="@+id/wifi_circle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/onpress_network_info_null"
android:src="@drawable/toggle"
/>
<ImageView
android:layout_alignRight="@+id/wifi_circle"
android:id="@+id/wifi_square"
android:layout_width="85dip"
android:layout_height="60dip"
android:background="@drawable/network_info_null"
android:src="@drawable/togglenetwork"/>
</RelativeLayout>
</FrameLayout>
</FrameLayout>发布于 2012-01-11 13:33:36
如果你想同时使用纵向和横向图形用户界面,那么你可以像这样在oncreate上写硬代码:-有一段时间你需要同时在横向和纵向定义你的应用程序图形用户界面(只需旋转手机)。
幸运的是,每个droid都有检测布局类型的内置函数。您需要实现的是:
/res/layout-land/main.xml
/res/layout-port/main.xml
只需在运行时构建并试用应用程序GUI即可。
如果你想要检测布局类型改变的时间,并且你想在编码中做一些额外的工作,你可能需要遵循以下步骤:
@Override
public void onConfigurationChanged(Configuration newConfig ) { Configuration c= getResources().getConfiguration();if(c.orientation == Configuration.ORIENTATION_PORTRAIT ){ // newConfig} else if(c.orientation == Configuration.ORIENTATION_LANDSCAPE ){ // onConfigurationChanged}}
如果您只想要肖像,那么就是
AndroidManifest.xml,像这样声明你的活动:
如果您只想要景观效果,那么就是
AndroidManifest.xml,像这样声明你的活动:
如果您想了解更多信息,请访问以下链接
http://developer.android.com/resources/articles/faster-screen-orientation-change.html
http://developer.android.com/guide/topics/manifest/activity-element.html#screen
发布于 2012-01-11 13:19:27
当屏幕方向改变时,它将再次从onCreate()开始。因此您可以在onCreate()中检查屏幕的当前方向,然后动态设置视图的高度和宽度。保留您的xml代码,因为它只在视图处于landsacpe中时动态设置视图的高度和宽度。
https://stackoverflow.com/questions/8814425
复制相似问题