亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android控件動態用法實例分析

2020-04-11 11:23:45
字體:
來源:轉載
供稿:網友

本文實例講述了Android控件動態用法。分享給大家供大家參考。具體如下:

通常android里的界面布局都是在XML里設定好的
也就是說 在程序中,不能更改界面上的元素數量等,
比如聊天會話界面

當有人發言就要增加一個TextView,這就是動態增加控件,這就不能在XML里事先布局了!

不過還好,ANDROID使用控件也不是只有XML這一種方式

以下代碼就是動態生產控件的JAVA程序

package com.fetion.android;import android.app.Activity;import android.content.Context;import android.graphics.Color;import android.os.Bundle;import android.text.Layout;import android.text.format.DateFormat;import android.util.Log;import android.view.KeyEvent;import android.view.ViewGroup.LayoutParams;import android.widget.*;import java.util.Calendar;/** * 測試動態使用android控件 * @author gaolei by 20090827 */public class fetion2009 extends Activity{  /** Called when the activity is first created. */  ProgressBar pb; //進度條控件,但拿出來是為了可控,動態改變其進度  //聊天對話的底色是間隔的  private static final int[] bg = { Color.WHITE, Color.GRAY };  private static int bgIndex=0;  //聊天對話的底色 當前色應該是bg中的索引值  //以下 布局參數 標識當前控件的寬高情況FILL_PARENT=占據全部父控件,WRAP_CONTENT=僅包裹控件中的內容//還有其他作用比如左右邊距,這里我們使用默認的  private LinearLayout.LayoutParams LP_FF = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);  private LinearLayout.LayoutParams LP_FW = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);  private LinearLayout.LayoutParams LP_WW = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);  @Override  public void onCreate( Bundle savedInstanceState )  {    super.onCreate( savedInstanceState );    //聊天對白窗口需要滾動    ScrollView sv  = new ScrollView(this);    sv.setLayoutParams( LP_FF );    LinearLayout layout = new LinearLayout(this); //線性布局方式    layout.setOrientation( LinearLayout.VERTICAL ); //控件對其方式為垂直排列    layout.setBackgroundColor( 0xff00ffff ); //設置布局板的一個特殊顏色,這可以檢驗我們會話時候是否有地方顏色不正確!    //豐富聊天頁面,也順帶測試頁面滾動效果,增加了10個重復的對話內容    for( int i=0; i<10; i++ )    {      setSendMsg( layout, this, getCurrColor(), i+"聊天內容在這里。。" );    }    //發送文件效果1,圓環進度條,也是ProgressBar默認的效果    setSendFile( layout, this, getCurrColor(),"我的照片.jpg");    //發送文件效果2,矩行進度條,也是ProgressBar的風格設置成style="?android:attr/progressBarStyleHorizontal"的效果    setSendFile2( layout, this, getCurrColor(),"我的照片.jpg");    for( int i=0; i<10; i++ )    {      setSendMsg( layout, this, getCurrColor(), i+"聊天內容在這里。。" );    }    sv.addView( layout );  //把線性布局加入到ScrollView中    setContentView(sv);   //設置當前的頁面為ScrollView  }  /**   * 獲取當前聊天對白的底色值   * @return 當前聊天對白的底色值   */  private int getCurrColor()  {    return bg[ (++bgIndex)% bg.length ];  }  /**   * 動態增加一個聊天內容   * 這里為了簡化編程把 某人說 和 內容放到一個TextView中,可以根據設計文檔拆成2個TextView分別顯示,設置字體等   * @param layout  TextView控件欲添加到的目標layout   * @param context  構建View控件的必須參數 既View控件的環境   * @param bgColur  TextView控件的背景色   * @param MSG    TextView控件要現實的文本內容   */  private void setSendMsg(LinearLayout layout, Context context, int bgColur, String MSG)  {    TextView tv = new TextView(context);  //普通聊天對話    //獲取一個全局的日歷實例,用于獲取當前系統時間并格式化成小時:分鐘形式,僅用于測試,這里的時間應該是由其他程序提供    tv.setText( "某人 說: ["+DateFormat.format( "kk:mm" , Calendar.getInstance())+"]/n"+MSG );    tv.setBackgroundColor( bgColur );    layout.addView( tv );  }  /**   * 動態增加一個發送文件的會話條目   * 這里因為是發送進度條與取消按鈕的水平對其方式,所以需要增加一個LinearLayout   * @param layout  欲添加到的目標layout   * @param context  構建View控件的必須參數 既View控件的環境   * @param bgColur  控件的背景色   * @param MSG    控件要現實的文本內容   */  private void setSendFile(LinearLayout layout, Context context, int bgColur, String fileName)  {    //把 某人說 [時間]    //要發送的文件信息 全都交給 setSendMsg 繪制吧!    setSendMsg( layout, context, bgColur, "正在發送"+fileName );    //水平排列2個控件需要一個LinearLayout,排列方式默認的就是水平排列    LinearLayout myLayout = new LinearLayout(context);    //這個LinearLayout控件的背景色需要設置,要不就會顯示出主LinearLayout的顏色了,即0xff00ffff    myLayout.setBackgroundColor( bgColur );    //動態創建一個ProgressBar,以默認屬性加入到myLayout中    ProgressBar pb = new ProgressBar(context);    pb.setLayoutParams( LP_WW );    myLayout.addView( pb );    //動態創建一個Button,以默認屬性加入到myLayout中    Button bt = new Button(context);    bt.setLayoutParams( LP_WW );    bt.setText( "取消" );    myLayout.addView( bt );    //將水平布局的LinearLayout及其內如所有控件添加到主layout中    layout.addView( myLayout );  }  /**   * 動態增加一個發送文件的會話條目   * 但為了保障ProgressBar和Button的底色符合設計要求,增加了一個LinearLayout,并設置其背景色   * @param layout  欲添加到的目標layout   * @param context  構建View控件的必須參數 既View控件的環境   * @param bgColur  控件的背景色   * @param MSG    控件要現實的文本內容   */  private void setSendFile2(LinearLayout layout, Context context, int bgColur, String fileName)  {    setSendMsg( layout, context, bgColur, "正在發送"+fileName );    LinearLayout myLayout = new LinearLayout(context);    myLayout.setBackgroundColor( bgColur );    myLayout.setOrientation( LinearLayout.VERTICAL );//控件對其方式為垂直,默認為水平    //ProgressBar的默認風格是圓環型,這里需要設置她的風格為Horizontal(水平線)    pb = new ProgressBar(context,null,android.R.attr.progressBarStyleHorizontal);    pb.setLayoutParams( LP_FW );    pb.setProgress( 45 ); //設置第1進度為45    pb.setSecondaryProgress( 0 ); //這里我們不需要第2進度,所以為0    myLayout.addView( pb );    Button bt = new Button(context);    bt.setLayoutParams( LP_WW );    bt.setText( "取消" );    myLayout.addView( bt );    layout.addView( myLayout );  }  @Override  public boolean onKeyDown(int keyCode, KeyEvent event)  {    Log.d("onKeyDown:", " keyCode=" + keyCode + " KeyEvent=" + event);    switch (keyCode)    {      case KeyEvent.KEYCODE_DPAD_UP:      break;      case KeyEvent.KEYCODE_DPAD_DOWN:      break;      case KeyEvent.KEYCODE_DPAD_LEFT:        //右左按鍵可以控制第一進度的增減        pb.setProgress( pb.getProgress()-5 );      break;      case KeyEvent.KEYCODE_DPAD_RIGHT:        pb.setProgress( pb.getProgress()+5 );      break;      case KeyEvent.KEYCODE_DPAD_CENTER:      break;      case KeyEvent.KEYCODE_0:      break;    }    return super.onKeyDown(keyCode, event);  }}

希望本文所述對大家的Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线视频一二三| 国产精品久久久久久久久久尿| 欧美肥臀大乳一区二区免费视频| 亚洲精品国产免费| 57pao成人国产永久免费| 欧美日韩国产成人在线| 亚洲欧美国产高清va在线播| 欧美激情视频网址| 精品国产一区av| 91精品国产91久久久久久不卡| 成人国产精品日本在线| 欧美性色视频在线| 日韩av网站在线| 久久香蕉国产线看观看网| 精品在线欧美视频| 欧美激情视频在线免费观看 欧美视频免费一| 欧美成人精品在线| 欧美怡春院一区二区三区| 欧美视频在线视频| 日韩欧美在线视频日韩欧美在线视频| 色视频www在线播放国产成人| 欧美日韩在线影院| 欧美精品www在线观看| 91麻豆国产精品| 亚洲欧美一区二区三区在线| 97在线视频免费观看| 中文字幕自拍vr一区二区三区| 久久91亚洲精品中文字幕| 热久久99这里有精品| 欧美日韩国产精品一区| 国产精品亚洲综合天堂夜夜| 日韩av免费在线| 最近2019免费中文字幕视频三| 国产精品高潮呻吟久久av野狼| 欧美视频在线观看免费| 永久免费看mv网站入口亚洲| 日韩精品亚洲精品| 久久久天堂国产精品女人| 亚洲精选一区二区| 久久视频在线看| 日本sm极度另类视频| 欧美精品videos| 成人黄色大片在线免费观看| 久久久久久久久久婷婷| 一区二区中文字幕| 欧美激情欧美激情在线五月| 国产精品人人做人人爽| 欧美最猛性xxxx| 国内揄拍国内精品少妇国语| 国产精品中文字幕久久久| 91成人性视频| 色婷婷综合久久久久中文字幕1| 久久久精品在线| 91精品久久久久久| 中文字幕欧美日韩| 国内精品中文字幕| 欧美在线观看一区二区三区| 欧美精品免费在线观看| 在线精品国产欧美| 久热在线中文字幕色999舞| 久久久久久久久久国产精品| 日韩亚洲欧美中文在线| 久久精品中文字幕免费mv| 亚洲乱码av中文一区二区| 97婷婷大伊香蕉精品视频| 成人激情av在线| 国产亚洲欧美视频| 久久久久久久亚洲精品| 国产精品综合久久久| 亚洲美女中文字幕| 国产精品美女呻吟| 亚洲天堂第二页| 久久理论片午夜琪琪电影网| 亚洲美女福利视频网站| 亚洲欧美三级在线| 操人视频在线观看欧美| 色噜噜狠狠狠综合曰曰曰88av| 国产网站欧美日韩免费精品在线观看| 国产精品国产亚洲伊人久久| 亚洲美女av在线播放| 欧美激情免费在线| 91精品在线看| 深夜福利亚洲导航| 亚洲国产日韩欧美综合久久| 日韩成人激情影院| 国产精品第10页| 欧美激情一级精品国产| 成人在线视频网| 欧美一级在线亚洲天堂| 国产精品中文字幕久久久| 97av在线播放| 夜色77av精品影院| 国外成人免费在线播放| 91精品国产乱码久久久久久蜜臀| 日本91av在线播放| 一区二区在线免费视频| 91免费高清视频| 亚洲精品一区二区三区不| 欧美性生活大片免费观看网址| 国产黑人绿帽在线第一区| 国产精品福利小视频| 久久男人av资源网站| 欧美三级xxx| 岛国av一区二区在线在线观看| 日本亚洲欧美三级| 91黑丝在线观看| 97激碰免费视频| 欧美中文在线视频| 日韩暖暖在线视频| 久久韩国免费视频| 国产精品高清在线观看| 91麻豆国产语对白在线观看| 欧美日韩性视频在线| 在线电影欧美日韩一区二区私密| 亚洲午夜未满十八勿入免费观看全集| 深夜福利91大全| 国产精品海角社区在线观看| 亚洲高清在线观看| 国产免费久久av| 国产亚洲欧美日韩一区二区| 欧美成人午夜免费视在线看片| www.欧美三级电影.com| 欧美在线激情视频| 国产成人精品优优av| 欧美久久精品一级黑人c片| 91色中文字幕| 久久在线观看视频| 欧美午夜美女看片| 国产精品自拍偷拍视频| 久久这里有精品视频| 日韩国产欧美精品一区二区三区| 国产精品第3页| 中文字幕在线观看日韩| 91色精品视频在线| 在线看国产精品| 国产激情999| 亚洲国产中文字幕久久网| 精品人伦一区二区三区蜜桃免费| 国产欧美日韩中文字幕| 亚洲欧美国产精品| 日韩欧美在线中文字幕| 亚洲欧洲av一区二区| 欧美精品国产精品日韩精品| 97在线视频免费观看| 在线观看精品国产视频| 亚洲欧美精品一区| 色在人av网站天堂精品| 欧美寡妇偷汉性猛交| 国产精品亚洲第一区| 欧美专区在线播放| 久久免费视频这里只有精品| 一本一道久久a久久精品逆3p| 午夜精品一区二区三区在线播放| 日日骚av一区| 在线电影av不卡网址| 成人网欧美在线视频| 国产精品视频一区国模私拍| 久久亚洲一区二区三区四区五区高| 成人免费直播live| 91久久夜色精品国产网站| 久久久久久成人精品| 精品欧美一区二区三区| 久久久噜久噜久久综合| 日韩av电影在线免费播放|