`
Qi_Wenbin
  • 浏览: 751 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多

   1.  package com.fetion.android;   

   2.   

   3. import android.app.Activity;   

   4. import android.content.Context;   

   5. import android.graphics.Color;   

   6. import android.os.Bundle;   

   7. import android.text.Layout;   

   8. import android.text.format.DateFormat;   

   9. import android.util.Log;   

  10. import android.view.KeyEvent;   

  11. import android.view.ViewGroup.LayoutParams;   

  12. import android.widget.*;   

  13.   

  14. import java.util.Calendar;   

  15.   

  16. /**  

  17.  * 测试动态使用android控件  

  18.  * @author gaolei by 20090827  

  19.  */  

  20. public class fetion2009 extends Activity   

  21. {   

  22.     /** Called when the activity is first created. */  

  23.     ProgressBar pb;                 //进度条控件,但拿出来是为了可控,动态改变其进度   

  24.     //聊天对话的底色是间隔的   

  25.     private static final int[] bg = { Color.WHITE, Color.GRAY };   

  26.     private static int bgIndex=0;   //聊天对话的底色 当前色应该是bg中的索引值   

  27.        

  28.     //以下 布局参数 标识当前控件的宽高情况FILL_PARENT=占据全部父控件,WRAP_CONTENT=仅包裹控件中的内容//还有其他作用比如左右边距,这里我们使用默认的   

  29.     private LinearLayout.LayoutParams LP_FF = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);   

  30.     private LinearLayout.LayoutParams LP_FW = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);   

  31.     private LinearLayout.LayoutParams LP_WW = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);   

  32.        

  33.     @Override  

  34.     public void onCreate( Bundle savedInstanceState )   

  35.     {   

  36.         super.onCreate( savedInstanceState );   

  37.            

  38.         //聊天对白窗口需要滚动   

  39.         ScrollView sv   = new ScrollView(this);   

  40.         sv.setLayoutParams( LP_FF );   

  41.            

  42.         LinearLayout layout = new LinearLayout(this);   //线性布局方式   

  43.         layout.setOrientation( LinearLayout.VERTICAL ); //控件对其方式为垂直排列   

  44.         layout.setBackgroundColor( 0xff00ffff );        //设置布局板的一个特殊颜色,这可以检验我们会话时候是否有地方颜色不正确!   

  45.   

  46.         //丰富聊天页面,也顺带测试页面滚动效果,增加了10个重复的对话内容   

  47.         for( int i=0; i<10; i++ )   

  48.         {   

  49.             setSendMsg( layout, this, getCurrColor(), i+"聊天内容在这里。。" );   

  50.         }   

  51.            

  52.         //发送文件效果1,圆环进度条,也是ProgressBar默认的效果   

  53.         setSendFile( layout, this, getCurrColor(),"我的照片.jpg");   

  54.            

  55.         //发送文件效果 2,矩行进度条,也是ProgressBar的风格设置成 style="?android:attr/progressBarStyleHorizontal"的效果   

  56.         setSendFile2( layout, this, getCurrColor(),"我的照片.jpg");   

  57.            

  58.         for( int i=0; i<10; i++ )   

  59.         {   

  60.             setSendMsg( layout, this, getCurrColor(), i+"聊天内容在这里。。" );   

  61.         }   

  62.         sv.addView( layout );   //把线性布局加入到ScrollView中   

  63.         setContentView(sv);     //设置当前的页面为ScrollView   

  64.     }   

  65.        

  66.     /**  

  67.      * 获取当前聊天对白的底色值  

  68.      * @return 当前聊天对白的底色值  

  69.      */  

  70.     private int getCurrColor()   

  71.     {   

  72.         return bg[ (++bgIndex)% bg.length ];   

  73.     }   

  74.        

  75.     /**  

  76.      * 动态增加一个聊天内容  

  77.      * 这里为了简化编程把 某人说 和 内容放到一个TextView中,可以根据设计文档拆成2个TextView分别显示,设置字体等  

  78.      * @param layout    TextView 控件欲添加到的目标layout  

  79.      * @param context   构建View控件的必须参数 既View控件的环境  

  80.      * @param bgColur   TextView 控件的背景色  

  81.      * @param MSG       TextView 控件要现实的文本内容  

  82.      */  

  83.     private void setSendMsg(LinearLayout layout, Context context, int bgColur, String MSG)   

  84.     {   

  85.         TextView tv = new TextView(context);    //普通聊天对话   

  86.         //获取一个全局的日历实例,用于获取当前系统时间并格式化成小时:分钟形式,仅用于测试,这里的时间应该是由其他程序提供   

  87.         tv.setText( "某人  说: ["+DateFormat.format( "kk:mm" , Calendar.getInstance())+"]\n"+MSG );   

  88.         tv.setBackgroundColor( bgColur );   

  89.         layout.addView( tv );   

  90.     }   

  91.        

  92.     /**  

  93.      * 动态增加一个发送文件的会话条目  

  94.      * 这里因为是发送进度条与取消按钮的水平对其方式,所以需要增加一个LinearLayout  

  95.      * @param layout    欲添加到的目标layout  

  96.      * @param context   构建 View控件的必须参数 既View控件的环境  

  97.      * @param bgColur   控件的背景色  

  98.      * @param MSG       控件要现实的文本内容  

  99.      */  

 100.     private void setSendFile(LinearLayout layout, Context context, int bgColur, String fileName)   

 101.     {   

 102.         //把 某人说 [时间]   

 103.         //要发送的文件信息 全都交给 setSendMsg 绘制吧!   

 104.         setSendMsg( layout, context, bgColur, "正在发送"+fileName );   

 105.         //水平排列2个控件需要一个LinearLayout,排列方式默认的就是水平排列   

 106.         LinearLayout myLayout = new LinearLayout(context);   

 107.         //这个 LinearLayout控件的背景色需要设置,要不就会显示出主LinearLayout的颜色了,即0xff00ffff   

 108.         myLayout.setBackgroundColor( bgColur );   

 109.   

 110.         //动态创建一个 ProgressBar,以默认属性加入到myLayout中   

 111.         ProgressBar pb = new ProgressBar(context);   

 112.         pb.setLayoutParams( LP_WW );   

 113.         myLayout.addView( pb );   

 114.   

 115.         //动态创建一个 Button,以默认属性加入到myLayout中   

 116.         Button bt = new Button(context);   

 117.         bt.setLayoutParams( LP_WW );   

 118.         bt.setText( " 取消" );   

 119.         myLayout.addView( bt );   

 120.         //将水平布局的 LinearLayout及其内如所有控件添加到主layout中   

 121.         layout.addView( myLayout );   

 122.     }   

 123.        

 124.     /**  

 125.      * 动态增加一个发送文件的会话条目  

 126.      * 但为了保障ProgressBar和 Button的底色符合设计要求,增加了一个LinearLayout,并设置其背景色  

 127.      * @param layout    欲添加到的目标layout  

 128.      * @param context   构建 View控件的必须参数 既View控件的环境  

 129.      * @param bgColur   控件的背景色  

 130.      * @param MSG       控件要现实的文本内容  

 131.      */  

 132.     private void setSendFile2(LinearLayout layout, Context context, int bgColur, String fileName)   

 133.     {   

 134.         setSendMsg( layout, context, bgColur, "正在发送"+fileName );   

 135.   

 136.         LinearLayout myLayout = new LinearLayout(context);    

 137.         myLayout.setBackgroundColor( bgColur );   

 138.         myLayout.setOrientation( LinearLayout.VERTICAL );//控件对其方式为垂直,默认为水平   

 139.            

 140.         //ProgressBar 的默认风格是圆环型,这里需要设置她的风格为Horizontal(水平线)   

 141.         pb = new ProgressBar(context,null,android.R.attr.progressBarStyleHorizontal);   

 142.         pb.setLayoutParams( LP_FW );   

 143.         pb.setProgress( 45 );           // 设置第1进度为45   

 144.         pb.setSecondaryProgress( 0 );   //这里我们不需要第2进度,所以为0   

 145.         myLayout.addView( pb );   

 146.            

 147.         Button bt = new Button(context);   

 148.         bt.setLayoutParams( LP_WW );   

 149.         bt.setText( "取消" );   

 150.         myLayout.addView( bt );   

 151.            

 152.         layout.addView( myLayout );   

 153.     }   

 154.        

 155.     @Override  

 156.     public boolean onKeyDown(int keyCode, KeyEvent event)   

 157.     {   

 158.         Log.d("onKeyDown:", " keyCode=" + keyCode + " KeyEvent=" + event);   

 159.         switch (keyCode)   

 160.         {   

 161.             case KeyEvent.KEYCODE_DPAD_UP:   

 162.   

 163.             break;   

 164.             case KeyEvent.KEYCODE_DPAD_DOWN:   

 165.   

 166.             break;   

 167.             case KeyEvent.KEYCODE_DPAD_LEFT:   

 168.                 //右左按键可以控制第一进度的增减   

 169.                 pb.setProgress( pb.getProgress()-5 );   

 170.             break;   

 171.             case KeyEvent.KEYCODE_DPAD_RIGHT:   

 172.                 pb.setProgress( pb.getProgress()+5 );   

 173.             break;   

 174.             case KeyEvent.KEYCODE_DPAD_CENTER:   

 175.   

 176.             break;   

 177.             case KeyEvent.KEYCODE_0:   

 178.             break;   

 179.         }   

 180.         return super.onKeyDown(keyCode, event);   

 181.     }   

 182. }  


分享到:
评论

相关推荐

    pss-sss_sss_PSS同步LTE_PSS,sss_pss_PSS,sss信号同步

    在LTE(长期演进)通信系统中,主同步信号(PSS)和辅同步信号(SSS)是网络与终端设备进行同步的关键组成部分。本文将深入解析这些信号的产生过程,以及如何通过MATLAB实现这一过程。 首先,PSS和SSS的作用在于...

    SSS1630升级版SSS1700规格书(2021新版).pdf

    根据给定文件的信息,我们可以提炼出关于SSS1700这款USB音频芯片的重要知识点。 ### 一、SSS1700概述 SSS1700是固态系统有限公司(简称3S)推出的一款高度集成的单芯片USB音频控制器,主要应用于耳机设备。相较...

    sss6675-sss6677U盘量产工具

    【标题】"sss6675-sss6677U盘量产工具"涉及的知识点主要涵盖U盘的量产、金士顿U盘、CDROM模拟以及系统安装。以下是对这些概念的详细解释: 1. **U盘量产**:U盘量产是指通过专用的量产工具对U盘进行格式化、分区、...

    SSS_MP_Utility_v2162_industrial7x9_22sss_www_sss2_hy6691com_

    标题中的"SSS_MP_Utility_v2162"很可能是指一个名为"SSS MP Utility"的软件的版本号,其中"v2162"表明这是第2162版。这个工具可能是专为特定的工业设备或系统设计的,因为后续的"industrial7x9"标签暗示了它可能与7...

    台湾鑫创SSS1700低成本替代Cmedia CM6533 24bit 96KHZ US B音频编解码芯片-SSS1700替代C

    SSS1700B1是一款由台湾鑫创公司设计的USB音频编解码芯片,旨在作为Cmedia CM6533的低成本替代方案。该芯片支持24位音频采样和96kHz的采样率,适用于高质量的音频处理应用。在本文中,我们将深入探讨SSS1700B1的主要...

    鑫创(SSS) sss6690/sk6611 量产工具

    【鑫创(SSS)sss6690/sk6611 量产工具】是针对鑫创科技生产的SSS6690和SK6611芯片进行批量生产编程和测试的专业软件工具。该工具主要用于USB闪存盘、SD卡、MMC卡等存储设备的制造过程中,确保芯片在大规模生产时...

    SSS6677-A7优盘量产工具

    SSS6677-A7优盘量产工具是一款专门针对SSS6677主控芯片的优盘进行批量生产、格式化和修复的软件工具。这个工具的主要目的是帮助用户解决优盘出现的各种问题,如无法识别、读写速度慢、容量显示不正确等。在了解如何...

    sss.rar_1216sss com_786sss_969sss.com\_sss_sss aps

    在这个“sss.rar_1216sss com_786sss_969sss.com\_sss_sss aps”压缩包中,包含了一个名为“sss”的文件,很可能是一个源代码文件,可能是用C、C++、Python或JavaScript等编程语言编写的,用于实现屏幕冒泡排序的...

    SSS1629_ DEMO使用指南(最新版本)

    根据提供的文件信息,以下是关于SSS1629 DEMO使用指南的知识点总结: 1. SSS1629 DEMO板介绍: SSS1629 DEMO板是一款用于展示和测试SSS1629芯片功能的演示板。根据文件中的描述,此板演示了包括呼吸灯、音效灯、...

    SSS PTS V2.0.2中文翻译版

    "SSS PTS V2.0.2中文翻译版" SSS PTS V2.0.2中文翻译版是企业级存储测试解决方案,旨在为存储设备提供详细的性能测试和评估报告。本文档将对SSS PTS V2.0.2中文翻译版的标题、描述、标签和部分内容进行详细的解释和...

    台湾鑫创SSS6675-SSS6677_U盘量产图文教程.doc

    ### 台湾鑫创SSS6675-SSS6677_U盘量产图文教程 #### 一、量产工具概述及作用 量产工具是一种专门用于对U盘底层固件进行重写或修改的软件工具,通常由U盘主控芯片的制造商提供。对于SSS6675-SSS6677系列U盘来说,量...

    鑫创SSS6677量产工具

    【鑫创SSS6677量产工具】是一款专门针对鑫创科技生产的SSS6677芯片进行批量生产操作的软件工具。该工具的主要功能是帮助用户对使用SSS6677芯片的存储设备进行初始化、格式化、修复以及性能测试等一系列生产和维护...

    SSS1630A1-U6D

    根据给定文件信息,以下是对SSS1630A1-U6D相关的知识点的详细说明: 1. SSS1630A1-U6D设备概述: SSS1630A1-U6D是由Solid State System Co., Ltd.(3S)设计生产的一款高度集成的单芯片USB音频控制器。该控制器具备...

    SSS_MP_Utility_v2173.rar_22sss_SSS558_sss63_sss699_wwwsss558

    《SSS_MP_Utility_v2173:VHDL编程中的钢琴功能工具》 在电子设计自动化领域,VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种强大的硬件描述语言,用于描述数字系统的结构和行为...

    SSS.rar_www.533sss.com_www.SSS

    【标题】"SSS.rar_www.533sss.com_www.SSS" 提供的信息表明,这是一个与网络资源相关的压缩文件,可能是从网站www.533sss.com或www.SSS下载的游戏资源,文件名中的"连连看游戏"暗示了内容可能是一个连连看游戏的应用...

    sss量产修复工具

    "sss量产修复工具"是一种专门用于修复和管理SSD(固态硬盘)的软件工具。在IT领域,量产工具通常指的是能够对大量相同型号的存储设备进行格式化、分区、写入数据等批量操作的软件。这里的“sss”可能是特定品牌或...

    金士顿 SSS6691/SK6215量产工具

    对于金士顿sss6691的量产,本人也在网上找了好多,发现很多是只支持以下主控和FLASH 1 6677 + CM Flash 2 6677 + Normal Flash 3 6677 + USB Disk AND CDROM 4 6690 + IM 34nm Normal Flash 5 6690 + SanDisk 43nm ...

    TC58NC6690-SSS6692-B4-Toshiba(东芝) 量产工具

    【TC58NC6690-SSS6692-B4-Toshiba(东芝) 量产工具】是一款专为Toshiba(东芝)生产的SSS6692存储芯片设计的量产工具。在理解这个工具之前,我们需要先了解几个基本概念。 **一、SSS6692存储芯片** SSS6692是Toshiba...

    sss6691量产工具

    【sss6691量产工具】是一款专门针对sss6691芯片进行批量生产操作的软件工具。在电子制造业中,量产工具对于高效、大批量地烧录固件或者进行设备初始化至关重要。这款工具简化了操作流程,允许用户在更改相应路径后...

    鑫创SSS ( 金士顿 DT 101 ) 量产工具

    鑫创SSS量产工具,亲测下面u盘可用 ================================  设备描述: [I:]USB Mass Storage Device(Kingston DT 101 II)  设备类型: 大容量存储设备  协议版本: USB 2.00  当前速度: 高速(High...

Global site tag (gtag.js) - Google Analytics