国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
android中l(wèi)ayout(布局)和menu(菜單)
介紹
在 Android 中各種布局的應(yīng)用,以及菜單效果的實(shí)現(xiàn) 
  • 各種布局方式的應(yīng)用,F(xiàn)rameLayout, LinearLayout, TableLayout, AbsoluteLayout, RelativeLayout  
  • 為指定元素配置上下文菜單,為應(yīng)用程序配置選項(xiàng)菜單,以及多級菜單的實(shí)現(xiàn) 


1、各種布局方式的演示
res/layout/main.xml
代碼
<?xml version="1.0" encoding="utf-8"?>
<!-- 
layout_width - 寬。fill_parent: 寬度跟著父元素走;wrap_content: 寬度跟著本身的內(nèi)容走;直接指定一個 px 值來設(shè)置寬
layout_height - 高。fill_parent: 高度跟著父元素走;wrap_content: 高度跟著本身的內(nèi)容走;直接指定一個 px 值來設(shè)置高
-->

<!--
LinearLayout - 線形布局。
    orientation - 容器內(nèi)元素的排列方式。vertical: 子元素們垂直排列;horizontal: 子元素們水平排列
    gravity - 內(nèi)容的排列形式。常用的有 top, bottom, left, right, center 等,詳見文檔
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation
="vertical" android:gravity="right"
    android:layout_width
="fill_parent" android:layout_height="fill_parent">

    
<!--
    FrameLayout - 層疊式布局。以左上角為起點(diǎn),將  FrameLayout 內(nèi)的元素一層覆蓋一層地顯示
    
-->
    
<FrameLayout android:layout_height="wrap_content"
        android:layout_width
="fill_parent">
        
<TextView android:layout_width="wrap_content"
            android:layout_height
="wrap_content" android:text="FrameLayout">
        
</TextView>
        
<TextView android:layout_width="wrap_content"
            android:layout_height
="wrap_content" android:text="Frame Layout">
        
</TextView>
    
</FrameLayout>

    
<TextView android:layout_width="wrap_content"
        android:layout_height
="wrap_content" android:text="@string/hello" />

    
<!--
    TableLayout - 表格式布局。
        TableRow - 表格內(nèi)的行,行內(nèi)每一個元素算作一列
        collapseColumns - 設(shè)置 TableLayout 內(nèi)的 TableRow 中需要隱藏的列的列索引,多個用“,”隔開
        stretchColumns - 設(shè)置 TableLayout 內(nèi)的 TableRow 中需要拉伸(該列會拉伸到所有可用空間)的列的列索引,多個用“,”隔開
        shrinkColumns - 設(shè)置 TableLayout 內(nèi)的 TableRow 中需要收縮(為了使其他列不會被擠到屏幕外,此列會自動收縮)的列的列索引,多個用“,”隔開
    
-->
    
<TableLayout android:id="@+id/TableLayout01"
        android:layout_width
="fill_parent" android:layout_height="wrap_content"
        android:collapseColumns
="1">
        
<TableRow android:id="@+id/TableRow01" android:layout_width="fill_parent"
            android:layout_height
="wrap_content">
            
<TextView android:layout_width="wrap_content"
                android:layout_weight
="1" android:layout_height="wrap_content"
                android:text
="行1列1" />
            
<TextView android:layout_width="wrap_content"
                android:layout_weight
="1" android:layout_height="wrap_content"
                android:text
="行1列2" />
            
<TextView android:layout_width="wrap_content"
                android:layout_weight
="1" android:layout_height="wrap_content"
                android:text
="行1列3" />
        
</TableRow>
        
<TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content"
            android:layout_height
="wrap_content">
            
<TextView android:layout_width="wrap_content"
                android:layout_height
="wrap_content" android:text="行2列1" />
        
</TableRow>
    
</TableLayout>

    
<!--
    AbsoluteLayout - 絕對定位布局。
        layout_x - x 坐標(biāo)。以左上角為頂點(diǎn)
        layout_y - y 坐標(biāo)。以左上角為頂點(diǎn)
    
-->
    
<AbsoluteLayout android:layout_height="wrap_content"
        android:layout_width
="fill_parent">
        
<TextView android:layout_width="wrap_content"
            android:layout_height
="wrap_content" android:text="AbsoluteLayout"
            android:layout_x
="100px" 
            android:layout_y
="100px" />
    
</AbsoluteLayout>

    
<!--
    RelativeLayout - 相對定位布局。
        layout_centerInParent - 將當(dāng)前元素放置到其容器內(nèi)的水平方向和垂直方向的中央位置(類似的屬性有 :layout_centerHorizontal, layout_alignParentLeft 等)
        layout_marginLeft - 設(shè)置當(dāng)前元素相對于其容器的左側(cè)邊緣的距離
        layout_below - 放置當(dāng)前元素到指定的元素的下面
        layout_alignRight - 當(dāng)前元素與指定的元素右對齊
    
-->
    
<RelativeLayout android:id="@+id/RelativeLayout01"
        android:layout_width
="fill_parent" android:layout_height="fill_parent">
        
<TextView android:layout_width="wrap_content" android:id="@+id/abc"
            android:layout_height
="wrap_content" android:text="centerInParent=true"
            android:layout_centerInParent
="true" />
        
<TextView android:layout_width="wrap_content"
            android:layout_height
="wrap_content" android:text="marginLeft=20px"
            android:layout_marginLeft
="20px" />
        
<TextView android:layout_width="wrap_content"
            android:layout_height
="wrap_content" android:text="xxx"
            android:layout_below
="@id/abc" android:layout_alignRight="@id/abc" />
    
</RelativeLayout>

</LinearLayout>

res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    
<string name="hello">Hello Layout</string>
    
<string name="app_name">webabcd_layout</string>
</resources>

Main.java
代碼
package com.webabcd.layout;

import android.app.Activity;
import android.os.Bundle;

public class Main extends Activity {
    
/** Called when the activity is first created. */
    @Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}


2、上下文菜單,選項(xiàng)菜單,子菜單
res/layout/main.xml
代碼
<?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:layout_height
="fill_parent">
    
    
<TextView android:id="@+id/txt1" android:layout_width="fill_parent"
        android:layout_height
="wrap_content" android:text="@string/hello_contextMenu" />
        
    
<TextView android:id="@+id/txt2" android:layout_width="fill_parent"
        android:layout_height
="wrap_content" android:text="@string/hello_subMenu" />
        
</LinearLayout>

res/values/strings.xml
代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>
    
<string name="hello_contextMenu">Hello Context Menu</string>
    
<string name="hello_subMenu">Hello Context Sub Menu</string>
    
<string name="app_name">webabcd_menu</string>
</resources>

Main.java
代碼
package com.webabcd.menu;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.TextView;
import android.widget.Toast;

// 演示兩種菜單的實(shí)現(xiàn)方式:上下文菜單(通過在某元素上長按,來呼出菜單)和選項(xiàng)菜單(通過按手機(jī)上的菜單按鈕,來呼出菜單)
public class Main extends Activity {
    
/** Called when the activity is first created. */
    @Override
    
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        
// 為 R.id.txt1 注冊一個上下文菜單(在此 TextView 上長按,則會呼出上下文菜單)
        
// 具體呼出的菜單內(nèi)容需要重寫 onCreateContextMenu 來創(chuàng)建
        TextView txt1 = (TextView) this.findViewById(R.id.txt1);
        
this.registerForContextMenu(txt1);

        
// 為 R.id.txt2 注冊一個上下文菜單
        TextView txt2 = (TextView) this.findViewById(R.id.txt2);
        
this.registerForContextMenu(txt2);
    }

    
// 重寫 onCreateContextMenu 用以創(chuàng)建上下文菜單
    
// 重寫 onContextItemSelected 用以響應(yīng)上下文菜單
    @Override
    
public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);

        
// 創(chuàng)建 R.id.txt1 的上下文菜單
        if (v == (TextView) this.findViewById(R.id.txt1)) {
            
            
// ContextMenu.setIcon() - 設(shè)置菜單的圖標(biāo)
            
// ContextMenu.setHeaderTitle() - 設(shè)置菜單的標(biāo)題
            menu.setHeaderIcon(R.drawable.icon01);
            menu.setHeaderTitle(
"我是菜單");
            
            
// 用 ContextMenu.add() 來增加菜單項(xiàng),返回值為 MenuItem
            
// 第一個參數(shù):組ID
            
// 第二個參數(shù):菜單項(xiàng)ID
            
// 第三個參數(shù):順序號
            
// 第四個參數(shù):菜單項(xiàng)上顯示的內(nèi)容
            menu.add(100"菜單1");
            
            
// MenuItem - 新增菜單項(xiàng)后的返回類型,針對菜單項(xiàng)的其他設(shè)置在此對象上操作 
            menu.add(111"菜單2").setCheckable(true);
            
        }
        
// 創(chuàng)建 R.id.txt2 的上下文菜單(多級上下文菜單)
        else if (v == (TextView) this.findViewById(R.id.txt2)) {
            
            
// ContextMenu.addSubMenu("菜單名稱") - 用來添加子菜單。子菜單其實(shí)就是一個特殊的菜單
            SubMenu sub = menu.addSubMenu("父菜單1");
            sub.setIcon(R.drawable.icon01);
            sub.add(
000"菜單1");
            sub.add(
011"菜單2");
            sub.setGroupCheckable(
1truetrue);

            SubMenu sub2 
= menu.addSubMenu("父菜單2");
            sub2.setIcon(R.drawable.icon01);
            sub2.add(
100"菜單3");
            sub2.add(
111"菜單4");
            sub2.setGroupCheckable(
1truefalse);
            
        }
    }
    
    
    
// 重寫 onCreateOptionsMenu 用以創(chuàng)建選項(xiàng)菜單
    @Override
    
public boolean onCreateOptionsMenu(Menu menu) {

        MenuItem menuItem 
= menu.add(000"菜單111111111111111111111");
        
        
// MenuItem.setIcon() - 設(shè)置菜單項(xiàng)的圖標(biāo)
        
// MenuItem.setTitleCondensed() - 菜單的簡標(biāo)題,如果指定了簡標(biāo)題的話,菜單項(xiàng)上的標(biāo)題將會以此簡標(biāo)題為準(zhǔn)
        
// MenuItem.setAlphabeticShortcut() - 設(shè)置選中此菜單項(xiàng)的快捷鍵
        
// 注:菜單項(xiàng)超過 6 個的話,第 6 個菜單將會變?yōu)?nbsp; More 菜單,多余的菜單會在單擊 More 菜單之后顯示出來
        menuItem.setIcon(R.drawable.icon01);
        menuItem.setTitleCondensed(
"菜單1");
        menuItem.setAlphabeticShortcut(
'a');

        menu.add(
011"菜單2").setIcon(R.drawable.icon02);
        menu.add(
022"菜單3").setIcon(R.drawable.icon03);
        menu.add(
033"菜單4");
        menu.add(
044"菜單5");
        menu.add(
055"菜單6");
        menu.add(
066"菜單7").setIcon(R.drawable.icon04);
        menu.add(
077"菜單8").setIcon(R.drawable.icon05);

        
return true;
    }

    
// 重寫 onOptionsItemSelected 用以響應(yīng)選項(xiàng)菜單
    @Override
    
public boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);
        
        Toast.makeText(Main.
this"被單擊的菜單項(xiàng)為:" + String.valueOf(item.getItemId()), Toast.LENGTH_SHORT).show();

        
return false;
    }
}
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Android之解決底部4個TextView占比例大小不一致問題
[Android] Android開發(fā)優(yōu)化之
Using the Android action bar (ActionBar)
TextView中多行字的行間距
Android 設(shè)置TextView滑動滾動條和滑動效果
listview怎樣設(shè)置每個Item的高度?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服