首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >小部件大小在更改方向时减小

小部件大小在更改方向时减小
EN

Stack Overflow用户
提问于 2012-01-11 13:07:32
回答 2查看 995关注 0票数 1

我已经创建了一个WiFi小部件。它的大小正在减小,同时将方向从纵向更改为横向。我使用的布局如下所示。

代码语言:javascript
复制
<?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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-11 13:33:36

如果你想同时使用纵向和横向图形用户界面,那么你可以像这样在oncreate上写硬代码:-有一段时间你需要同时在横向和纵向定义你的应用程序图形用户界面(只需旋转手机)。

幸运的是,每个droid都有检测布局类型的内置函数。您需要实现的是:

  1. 创建两个用于布局的main.xml文件:横向和纵向。
  2. 根据其类型将这两个main.xml放入资源中:

/res/layout-land/main.xml

/res/layout-port/main.xml

只需在运行时构建并试用应用程序GUI即可。

如果你想要检测布局类型改变的时间,并且你想在编码中做一些额外的工作,你可能需要遵循以下步骤:

  1. AndroidManifest.xml
  2. Detect android:configChanges=“orientation”to
    1. AndroidManifest.xml
    2. Detect the orientation change:

@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}}

Details

如果您只想要肖像,那么就是

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

StackOverflow search

票数 2
EN

Stack Overflow用户

发布于 2012-01-11 13:19:27

当屏幕方向改变时,它将再次从onCreate()开始。因此您可以在onCreate()中检查屏幕的当前方向,然后动态设置视图的高度和宽度。保留您的xml代码,因为它只在视图处于landsacpe中时动态设置视图的高度和宽度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8814425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档