解析Android中如何布局定位Widget控件

移动开发
Android中如何布局定位Widget控件是本文要介绍的内容,主要是来了解并学习Android Widget控件的应用,具体内容的实现来看本文详解。

Android中如何布局定位Widget控件是本文要介绍的内容,主要是来了解并学习Android Widget控件的应用,具体内容的实现来看本文详解。

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.  android:orientation="vertical" android:layout_width="fill_parent" android:id="@+id/laymain" 
  4.  android:layout_height="fill_parent"> 
  5.   <TextView android:layout_width="fill_parent" android:id="@+id/id_hello" 
  6.   android:layout_height="wrap_content" android:text="@string/hello" /> 
  7. </LinearLayout> 

然后我想在水平坐标居中, 纵坐标为手机屏幕 3 /5 的位置显示这个LinearLayout里的TextView, 有什么比较

简单的方法呢? 

做过网页的朋友一定很想利用MarginLeft, MarginTop属性了, 没错! 获取TextView的MarginLayoutParams是关键!

贴出代码:

  1. package com.dengsi.android;  
  2.  
  3. import android.app.Activity;  
  4. import android.graphics.Paint;  
  5. import android.os.Bundle;  
  6. import android.view.Display;  
  7. import android.view.ViewGroup;  
  8. import android.view.ViewGroup.MarginLayoutParams;  
  9. import android.widget.LinearLayout;  
  10. import android.widget.ScrollView;  
  11. import android.widget.TextView;  
  12. import android.widget.LinearLayout.LayoutParams;  
  13.  
  14. public class fixposition extends Activity {  
  15.  private LinearLayout laymain = null;  
  16.  private TextView textview_ = null;  
  17.  int sWidth_ = 0;  
  18.  int sHeight = 0;  
  19.  Paint fontPaint_ = null;  
  20.  
  21.  /** Called when the activity is first created. */  
  22.  @Override  
  23.  public void onCreate(Bundle savedInstanceState) {  
  24.   super.onCreate(savedInstanceState);  
  25.   setContentView(R.layout.main);  
  26.   textview_ = (TextView) findViewById(R.id.id_hello);  
  27.   laymain = (LinearLayout)findViewById(R.id.laymain);  
  28.     
  29.   TextView spaceTV = new TextView(this);  
  30.  
  31.   fontPaint_ = new Paint();  
  32.   Display disp_ = this.getWindowManager().getDefaultDisplay();  
  33.   sWidth_ = disp_.getWidth();  
  34.   sHeight = disp_.getHeight();  
  35.     
  36.   // TODO Auto-generated method stub  
  37.   int toY = (sHeight * 3) / 5;  
  38.   int toX = (sWidth_ - (int) fontPaint_.measureText(textview_.getText()  
  39.     .toString())) >> 1;  
  40.   System.out.println("x = " + toX + "y = " + toY);  
  41.     
  42.   laymain.addView(spaceTV, 0);  
  43.   spaceTV.setLayoutParams(new LinearLayout.LayoutParams(0, toY));  
  44.     
  45.   ViewGroup.MarginLayoutParams mlp = (MarginLayoutParams) textview_.getLayoutParams();  
  46.   mlp.leftMargin = toX;  
  47.   textview_.setLayoutParams(mlp);  
  48.   textview_.requestLayout();  
  49.   textview_.invalidate();  
  50.     
  51.   laymain.invalidate();  
  52.  }  

模拟器显示效果如图(然后可以把这个放在欢迎画面, 继续做滚动字幕等扩展, 我这里没有用onDraw方法):

小结:解析Android中如何布局定位Widget控件的内容介绍完了,希望通过本文的学习能Android Widget控件内容的学习能对你有所帮助,

责任编辑:zhaolei 来源: 互联网
相关推荐

2010-07-13 09:08:27

Widget开发

2011-09-07 13:30:48

Android WidTabWidget

2011-09-07 14:01:41

Android Wid实例

2011-09-09 10:00:20

Android Wid开发

2011-09-07 17:54:40

Android Wid开发

2011-09-07 14:39:47

Android Wid设计

2011-09-08 15:40:45

Android Wid组件

2010-09-13 13:12:57

CSS定位

2011-09-07 14:25:53

Android Wid设计

2010-04-23 11:21:05

Widget开发

2011-09-07 14:55:28

Android WidAppWidget事件

2011-09-09 17:59:26

QT Widget

2010-09-14 16:57:29

DIV绝对定位CSS

2011-09-08 14:05:19

WidgetFlexViewer

2011-09-09 19:23:52

Widget

2011-09-08 14:21:37

jQueryWidget

2011-09-08 16:17:45

Widget

2011-04-07 08:59:47

Android交互设计

2011-09-09 13:23:17

Widget

2011-09-07 14:20:42

Android Wid组件
点赞
收藏

51CTO技术栈公众号