解析Android中如何布局定位Widget控件
Android中如何布局定位Widget控件是本文要介紹的內(nèi)容,主要是來了解并學習Android Widget控件的應(yīng)用,具體內(nèi)容的實現(xiàn)來看本文詳解。
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical" android:layout_width="fill_parent" android:id="@+id/laymain"
- android:layout_height="fill_parent">
- <TextView android:layout_width="fill_parent" android:id="@+id/id_hello"
- android:layout_height="wrap_content" android:text="@string/hello" />
- </LinearLayout>
然后我想在水平坐標居中, 縱坐標為手機屏幕 3 /5 的位置顯示這個LinearLayout里的TextView, 有什么比較
簡單的方法呢?
做過網(wǎng)頁的朋友一定很想利用MarginLeft, MarginTop屬性了, 沒錯! 獲取TextView的MarginLayoutParams是關(guān)鍵!
貼出代碼:
- package com.dengsi.android;
- import android.app.Activity;
- import android.graphics.Paint;
- import android.os.Bundle;
- import android.view.Display;
- import android.view.ViewGroup;
- import android.view.ViewGroup.MarginLayoutParams;
- import android.widget.LinearLayout;
- import android.widget.ScrollView;
- import android.widget.TextView;
- import android.widget.LinearLayout.LayoutParams;
- public class fixposition extends Activity {
- private LinearLayout laymain = null;
- private TextView textview_ = null;
- int sWidth_ = 0;
- int sHeight = 0;
- Paint fontPaint_ = null;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- textview_ = (TextView) findViewById(R.id.id_hello);
- laymain = (LinearLayout)findViewById(R.id.laymain);
- TextView spaceTV = new TextView(this);
- fontPaint_ = new Paint();
- Display disp_ = this.getWindowManager().getDefaultDisplay();
- sWidth_ = disp_.getWidth();
- sHeight = disp_.getHeight();
- // TODO Auto-generated method stub
- int toY = (sHeight * 3) / 5;
- int toX = (sWidth_ - (int) fontPaint_.measureText(textview_.getText()
- .toString())) >> 1;
- System.out.println("x = " + toX + ", y = " + toY);
- laymain.addView(spaceTV, 0);
- spaceTV.setLayoutParams(new LinearLayout.LayoutParams(0, toY));
- ViewGroup.MarginLayoutParams mlp = (MarginLayoutParams) textview_.getLayoutParams();
- mlp.leftMargin = toX;
- textview_.setLayoutParams(mlp);
- textview_.requestLayout();
- textview_.invalidate();
- laymain.invalidate();
- }
- }
模擬器顯示效果如圖(然后可以把這個放在歡迎畫面, 繼續(xù)做滾動字幕等擴展, 我這里沒有用onDraw方法):
小結(jié):解析Android中如何布局定位Widget控件的內(nèi)容介紹完了,希望通過本文的學習能Android Widget控件內(nèi)容的學習能對你有所幫助,