随笔-17  评论-1  文章-0  trackbacks-0
  2010年6月2日

设置完成Gmail后我们还要对手机的一些基本功能功能进行设置,例如Wifi、时间、屏幕亮度、铃声等等。首先进行Wifi的设置。在G1上有一个小房子图案的按键,它的名字叫"HOME"键。点击"HOME"键返回手机主界面,然后向上拉出程序菜单,在菜单中点击“设置”图标(图标是一个小扳手的样子)进入系统的设置菜单。

 

Android教程之Wifi设置 Android教程之Wifi设置

设置菜单

进入“设置”菜单后单击“无线控件”这个选项进入wifi设置的子菜单。

 

Android教程之Wifi设置 Android教程之Wifi设置

wifi设置菜单

 

点击“wi-fi设置”子选项,进入wi-fi设置子菜单后点击勾选“网络通知”选项,然后在下边搜索到的无线路由列表找到你要连接的无线路由名称。点击该名称,如果加密的话会弹出密码设置的对话框。输入你的无线路由密码后点击“完成”按钮,即可完成wifi的设置。

 

Android教程之Wifi设置

wifi密码

 

 

川大科技园职业技能培训学院(3G嵌入式技术创新中心)

咨询热线:400-702-8828  028-6862 6028

联系人:欧老师    联系方式:928077186

网址:http://www.ctic.cc

地址:四川省成都市科华北路47号(川大科技大厦)2楼

posted @ 2010-06-02 14:30 怡馨 阅读(262) | 评论 (0)编辑 收藏
  2010年5月24日
Android入门第六篇之ListView (一) ,讲的是如何制作一个具有两行文本的自定义控件,作为ListView的Item的使用方法。这篇接下来也是围绕ListView和Item,更加深入地介绍它们的用法。

       首先,先来看看本文代码运行的结果,本文的Item比上一篇中的Item多出左边的图标:

 


 

 


      main.xml的源代码,跟上一篇的一样,这里就不作解释了,直接贴出my_imageitem.xml的代码,就是它实现ImageItem的UI:

view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout   
         android:id="@+id/RelativeLayout01"   
         android:layout_width="fill_parent"   
         xmlns:android="http://schemas.android.com/apk/res/android  
         android:layout_height="wrap_content"   
         android:paddingBottom="4dip"   
         android:paddingLeft="12dip"> 
         <ImageView   
               android:layout_width="wrap_content"   
               android:layout_height="wrap_content"   
               android:id="@+id/ItemImage">   
         </ImageView> 
         <TextView   
               android:text="TextView01"   
               android:layout_height="wrap_content"   
               android:textSize="30dip"   
               android:layout_width="fill_parent"   
               android:layout_toRightOf="@+id/ItemImage"   
               android:id="@+id/ItemTitle"> 
         </TextView> 
         <TextView   
               android:text="TextView02"   
               android:layout_height="wrap_content"   
               android:layout_width="fill_parent"   
               android:layout_toRightOf="@+id/ItemImage"   
               android:layout_below="@+id/ItemTitle"   
               android:id="@+id/ItemText"> 
         </TextView> 
</RelativeLayout> 
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
         android:id="@+id/RelativeLayout01"
         android:layout_width="fill_parent"
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_height="wrap_content"
         android:paddingBottom="4dip"
         android:paddingLeft="12dip">
         <ImageView
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:id="@+id/ItemImage">
         </ImageView>
         <TextView
               android:text="TextView01"
               android:layout_height="wrap_content"
               android:textSize="30dip"
               android:layout_width="fill_parent"
               android:layout_toRightOf="@+id/ItemImage"
               android:id="@+id/ItemTitle">
         </TextView>
         <TextView
               android:text="TextView02"
               android:layout_height="wrap_content"
               android:layout_width="fill_parent"
               android:layout_toRightOf="@+id/ItemImage"
               android:layout_below="@+id/ItemTitle"
               android:id="@+id/ItemText">
         </TextView>
</RelativeLayout>
 

      解释一下 my_imageitem.xml的代码:这里使用了RelativeLayout布局,控件的关键的属性是:

ItemTitle的属性 android:layout_toRightOf="@+id/ItemImage" ,ItemTitle在ItemImage的右边;

ItemText的属性 android:layout_toRightOf="@+id/ItemImage",ItemText在ItemImage的右边, android:layout_below="@+id/ItemTitle", ItemText 在 ItemTitle的下面。

 

       最后,贴出JAVA的源代码,这里的源代码跟上一篇的很类似,只是修改了一部分,引入Item Image:

view plaincopy to clipboardprint?
@Override 
   public void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);  
       setContentView(R.layout.main);  
       //绑定XML中的ListView,作为Item的容器  
       ListView list = (ListView) findViewById(R.id.MyListView);  
         
       //生成动态数组,并且转载数据  
       ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();  
       for(int i=0;i<10;i++)  
       
        HashMap<String, Object> map = new HashMap<String, Object>();  
        map.put("ItemImage", R.drawable.icon);//添加图像资源的ID  
        map.put("ItemTitle", "This is Title.....");  
        map.put("ItemText", "This is text.....");  
        lstImageItem.add(map);  
       
       //生成适配器的ImageItem <====> 动态数组的元素,两者一一对应  
       SimpleAdapter saImageItems = new SimpleAdapter(this, //没什么解释  
                                                lstImageItem,//数据来源   
                                                R.layout.my_imageitem,//ListItem的XML实现  
                                                  
                                                //动态数组与ImageItem对应的子项          
                                                new String[] {"ItemImage","ItemTitle", "ItemText"},   
                                                  
                                                //ImageItem的XML文件里面的一个ImageView,两个TextView ID  
                                                new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText});  
       //添加并且显示  
       list.setAdapter(saImageItems);  
  
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //绑定XML中的ListView,作为Item的容器
        ListView list = (ListView) findViewById(R.id.MyListView);
       
        //生成动态数组,并且转载数据
        ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
        for(int i=0;i<10;i++)
        {
         HashMap<String, Object> map = new HashMap<String, Object>();
         map.put("ItemImage", R.drawable.icon);//添加图像资源的ID
         map.put("ItemTitle", "This is Title.....");
         map.put("ItemText", "This is text.....");
         lstImageItem.add(map);
        }
        //生成适配器的ImageItem <====> 动态数组的元素,两者一一对应
        SimpleAdapter saImageItems = new SimpleAdapter(this, //没什么解释
                                              lstImageItem,//数据来源
                                              R.layout.my_imageitem,//ListItem的XML实现
                                             
                                              //动态数组与ImageItem对应的子项       
                                              new String[] {"ItemImage","ItemTitle", "ItemText"},
                                             
                                              //ImageItem的XML文件里面的一个ImageView,两个TextView ID
                                              new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText});
        //添加并且显示
        list.setAdapter(saImageItems);
    }

 

川大科技园职业技能培训学院(3G嵌入式技术创新中心)

咨询热线:400-702-8828  028-6862 6028

联系人:欧老师    联系方式:928077186

网址:http://www.ctic.cc

地址:四川省成都市科华北路47号(川大科技大厦)2楼

posted @ 2010-05-24 14:21 怡馨 阅读(313) | 评论 (0)编辑 收藏
  2010年5月19日
TableLayout跟TableLayout 是一组搭配使用的布局,TableLayout置底,TableRow在TableLayout的上面,而Button、TextView等控件就在 TableRow之上,另外,TableLayout之上也可以单独放控件。TableLayout是一个使用复杂的布局,最简单的用法就仅仅是拖拉控件做出个界面,但实际上,会经常在代码里使用TableLayout,例如做出表格的效果。

  TableLayout经常用的属性是:

  android:collapseColumns:以第0行为序,隐藏指定的列:

  android:collapseColumns该属性为空时,如下图:

Android入门第四篇之TableLayout (一)

  把android:collapseColumns=0,2--------------》意思是把第0和第2列去掉,如下图:

Android入门第四篇之TableLayout (一)

  android:shrinkColumns:以第0行为序,自动延伸指定的列填充可用部分:

  当LayoutRow里面的控件还没有布满布局时,shrinkColumns不起作用,如下图:

Android入门第四篇之TableLayout (一)

  设置了shrinkColumns=0,1,2,布局完全没有改变,因为LayoutRow里面还剩足够的空间。

  当LayoutRow布满控件时,如下图:

Android入门第四篇之TableLayout (一)

  设置设置了shrinkColumns=2,则结果如下图,控件自动向垂直方向填充空间:

Android入门第四篇之TableLayout (一)

  android:stretchColumns:以第0行为序,尽量把指定的列填充空白部分:

Android入门第四篇之TableLayout (一)

  设置stretchColumns=1,则结果如下图,第1列被尽量填充(Button02与TextView02同时向右填充,直到TextView03被压挤到最后边)。

Android入门第四篇之TableLayout (一)

  Android的TableLayout + TableRow虽然使用有点复杂,但是功能很强大。Android提供了很多布局属性,但是手机程序的界面没有PC那么花俏,所以常用的就那几项而已。

 

 

川大科技园职业技能培训学院(3G嵌入式技术创新中心)

咨询热线:400-702-8828  028-6862 6028

联系人:欧老师    联系方式:928077186

网址:http://www.ctic.cc

地址:四川省成都市科华北路47号(川大科技大厦)2楼

posted @ 2010-05-19 15:23 怡馨 阅读(176) | 评论 (0)编辑 收藏
  2010年5月18日
RelativeLayout是一个按照相对位置排列的布局,跟AbsoluteLayout这个绝对坐标布局是个相反的理解。

  Android入门第三篇之RelativeLayout、FrameLayout

  在RelativeLayout布局里的控件包含丰富的排列属性:

  Layout above:选择ID A,则该控件在A控件的上方, Layout below、Layout to left of。。。。等同样用法。使用 RelativeLayout布局的时候,最好在界面设计时 做好布局,尽少程序运行时做控件布局的更改,因为 RelativeLayout布局里面的属性之间,很容易冲突,例如, Layout below、 Layout above同选 ID A,那就肯定发生冲突了。

  FrameLayout,顾名思义跟帧有关,布局里所有的控件都被放到布局的左上角,并且一层覆盖一层。

Android入门第三篇之RelativeLayout、FrameLayout

  FrameLayout布局里面的控件布局属性才那几项,其中关键的是layout_gravity,负责控制控件的位置。

 

 

川大科技园职业技能培训学院(3G嵌入式技术创新中心)

咨询热线:400-702-8828  028-6862 6028

联系人:欧老师    联系方式:928077186

网址:http://www.ctic.cc

地址:四川省成都市科华北路47号(川大科技大厦)2楼

posted @ 2010-05-18 16:44 怡馨 阅读(365) | 评论 (0)编辑 收藏
  2010年5月17日
Android 的UI 布局都以Layout 作为容器,在上面按照规定排列控件,这方面跟JAVA 的Swing 和LWUIT 很像。控件跟Layout 有很多属性是一样的,可以在Properties 里面修改,跟.NET/Delphi 等RAD 类似,其中最常用的属性有以下这些:

  id="@+id/edtInput",ID 是连接UI 与代码的桥梁

  Gravity= "center" ,Layout 中的控件居中

Android入门第二篇之LinearLayout、AbsoluteLayout

  layout_width="fill_parent" ,自动填充至屏幕宽度,layout_height 同理

Android入门第二篇之LinearLayout、AbsoluteLayout

  layout_width="wrap_content" ,自动填充为控件大小,layout_height 同理

Android入门第二篇之LinearLayout、AbsoluteLayout

  LinearLayout ,在入门第一篇所用的Layout 就是LinearLayout ,它的理解很简单:在LinearLayout 里面的控件,按照水平或者垂直排列:

  orientation="horizontal" :水平排列;orientation=" vertical" :垂直排列

  当LinearLayout 是horizontal ,并且里面的控件使用了layout_width="fill_parent" ,第二组控件会挡在屏幕的右边,那也就是看不到了。。。

  AbsoluteLayout ,是一个按照绝对坐标定义的布局,由于使用绝对坐标去定位控件,因此要实现自适应界面时,应尽少使用 AbsoluteLayout 。 AbsoluteLayout 里面的控件都以layout_x 、layout_y 来定义其位置:

Android入门第二篇之LinearLayout、AbsoluteLayout

  上图中的TextView01的X坐标为10px,Y坐标为10px:

 

   [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

 

 

川大科技园职业技能培训学院(3G嵌入式技术创新中心)

咨询热线:400-702-8828  028-6862 6028

联系人:欧老师    联系方式:928077186

网址:http://www.ctic.cc

地址:四川省成都市科华北路47号(川大科技大厦)2楼

posted @ 2010-05-17 17:28 怡馨 阅读(259) | 评论 (0)编辑 收藏
  2010年5月6日
最近Android挺火的,可惜刚毕业,温饱才刚刚解决,还没能力买台Android手机,所以目前的开发只能用模拟器来做。。。就目前 Android SDK 1.5 + Eclipse + ADT的开发方式来说,跟J2ME最大的区别在于UI的不同,当然Android比J2ME多出很多东西,多出的是J2ME无法作对比的。。。。刚开始做 Android开发,很多人都是先写个简单的界面,再加点控制代码,本文就是这样。

  本文所讲到的是LinearLayout + Button + EditText + AlertDialog的简单使用。

Android入门第一篇

  Activity以 LinearLayout排列,共用到两个 LinearLayout,第一个是用于全窗体,第二个用于存放两个Button,第二个 LinearLayout放在EditText控件下面,以下给出main.xml的代码:

 

   [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

 

  main.xml用于 Activity的UI设计,目前设计起来的速度,比 J2ME上的LWUIT略快(两者类似,Android提供了GUI设计工具),比WM上的.NET CF略慢(.NETCF 是RAD)。

  接下来给出JAVA代码:

 

   [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

 

  刚开始Android的开发,界面设计是J2ME程序员的瓶颈之处,不过以后Android的开发工具会越来越智能化,期待 Netbeans 推出更好的 ADT出来(Netbeans目前已经有Android插件)。


 

 

川大科技园职业技能培训学院(3G嵌入式技术创新中心)

咨询热线:400-702-8828  028-6862 6028

网址:http://www.ctic.cc

地址:四川省成都市科华北路47号(川大科技大厦)2楼

posted @ 2010-05-06 16:31 怡馨 阅读(214) | 评论 (0)编辑 收藏
  2010年5月5日

一个Android应用程序通常有下面4个组件组成:

  • Activity
  • Intent Receiver
  • Service
  • Content Provider

不是每个程序都有这4个,可能你的程序只使用了其中一部分。
一旦你决定程序包含哪些组件时,你得在AndroidManifest.xml文件中列出它们。这是个XML文件,它包含你程序所定义的组件,这些组件的功能和必备的条件。你可以访问
Android manifest在线文档获得此文件的详细描述。

Activity

注:专有名词不翻。

Activities 是4个组件中最常用的。程序中,Activity通常的表现形式是一个单独的界面(screen)。每个Aactivity都是一个单独的类,它扩展实现了Activity基础类。这个类显示为一个由Views组成的用户界面,并响应事件。大多数程序有多个Activity。例如,一个文本信息程序有这么几个界面:显示联系人列表界面,写信息界面,查看信息界面或者设置界面等。每个界面都是一个Activity。切换到另一个界面就是载入一个新的Activity。某些情况下,一个Activity可能会给前一个Activity返回值——例如,一个让用户选择相片的Activity会把选择到的相片返回给其调用者。

打开一个新界面后,前一个界面就被暂停,并放入历史栈中(界面切换历史栈)。使用者可以回溯前面已经打开的存放在历史栈中的界面。也可以从历史栈中删除没有界面价值的界面。Android在历史栈中保留程序运行产生的所有界面:从第一个界面,到最后一个。

 

Intent and Intent Filters

Android通过一个专门的Intent类来进行界面的切换。Intent描述了程序想做什么(intent,n.意图, 目的, 意向)。数据结构的2个最重要的部分是操作(action)与按照既定规则处理的数据(data)。典型的操作是MAIN (Activity的入口),VIEW,PICK,EDIT,等等。数据用URI表示。例如,查看某人的联系信息,你需要创建一个Intent,使用VIEW操作,数据则是一个指向此人的URI。

有个相关的类叫IntentFilter。Intent是一个请求来做什么事情;IntentFilter则描述了一个Activity(或下文的IntentReceiver)能处理什么意图。显示某人联系信息的Activity使用了一个IntentFilter,就是说它知道如何处理应用到此人数据的VIEW操作。Activities在AndroidManifest.xml文件中使用IntentFilters。

通过解析Intents来完成Activity的切换。使用startActivity(myIntent)来启用新的Activity。系统考察所有安装程序的IntentFilters,然后找到与myIntent匹配最好的IntentFilters所对应的Activity。这个新Activity接到Intent传来的消息,并因此被启用。解析Intents的过程发生在startActivity被实时调用时,这样做有2个好处:

  • Activities仅发出一个Intent请求,便能重用其他组件的功能
  • Activities 可以随时被替换为有等价IntentFilter的新Activity

Intent Receiver

当你想执行一些与外部事件相关的代码时,比如来电响铃时,数据网络可用时,或者半夜时做些事情,你可能需要使用IntentReceiver了。IntentReceivers没有UI,尽管它们使用NotificationManager来通知用户一些好玩的事情发生了。IntentReceivers在AndroidManifest.xml文件中声明,不过你可以使用Context.registerReceiver()来声明。你的程序没有必要运行来等待IntentReceivers被调用。当一个IntentReceiver被触发时,如何需要的话,系统自然会启动你的程序。程序也可以通过Context.broadcastIntent()来发送自己的Intent广播给其他程序。

Service

Service是一个没有UI且长驻系统的代码。最佳例子媒体播放器从播放列表中播放歌曲。媒体播放器程序中,可能有一个或多个Activities让用户选择歌曲播放。然而,在后台播放歌曲就无需Activity干涉了,因为用户希望在音乐播放同时能够切换到其他界面。既然这样,媒体播放器Activity需要通过Context.startService()启动一个Service,这个Service在后台运行以保持继续播放音乐。在媒体播放器被关闭之前, 系统会保持音乐后台播放Service的正常运行。(Life Cycle of an Android Application提供更多有关Service的信息。) 请注意,你可以用Context.bindService()方法连接到一个Service上(如果Service未运行的话,连接后,还会启动它)。连接上后,你就可以通过一个Service提供的接口与Service进行通话。对音乐Service来说,则提供了暂停,重放等功能。

Content Provider

应用程序把数据存放一个SQLite数据库格式文件里,或者存放在其他有效设备里。如果你想让其他程序能够使用你自己程序的数据,Content Provider就很有用了。Content Provider是一个实现了一系列标准方法的类,这个类使得其他程序能存储、读取某种Content Provider可处理的数据。想得到更多关于Content Provider的信息,请查看Accessing Content Providers

 

 

川大科技园职业技能培训学院(3G嵌入式技术创新中心)

咨询热线:400-702-8828  028-6862 6028

网址:http://www.ctic.cc

地址:四川省成都市科华北路47号(川大科技大厦)2楼

posted @ 2010-05-05 15:35 怡馨 阅读(160) | 评论 (0)编辑 收藏
  2010年4月28日

 

开放手机联盟(一个由 30 多家科技公司和手机公司组成的团体)已开发出 Android,Android 是第一个完整、开放、免费的手机平台。为帮助开发人员开始开发新的应用程序,提供Android软件开发套件。

    无界限的应用程序 

    Android上的应用程序可以通过标准API访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可以供其他应用程序使用。 

    应用程序是在平等的条件下创建的1月5日 

    移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件也可以。 

    应用程序可以轻松地嵌入网络1月5日 

    应用程序可以轻松地嵌入 HTML、Javascript 和样式表。应用程序可以通过 WebView 显示网络内容。 

    应用程序可以并行运行 

    Android 是一种完整的多任务环境,其中应用程序可以并行运行。在后台运行时,应用程序可以生成通知以引起注意。

 

 

川大科技园职业技能培训学院(3G嵌入式技术创新中心)

咨询热线:400-702-8828  028-6862 6028

网址:http://www.ctic.cc

地址:四川省成都市科华北路47号(川大科技大厦)2楼

posted @ 2010-04-28 15:05 怡馨 阅读(166) | 评论 (0)编辑 收藏
  2010年4月27日

浅谈Android系统中的UI

很多人在网络上都曾看到过UI这样的一个词,但是UI到底是什么,也许大多数人都不知道,或者无法完整表述出来。 

UI
是什么?简略地说,UIUser Interface(用户
界面)的简称.UI设计则是指对软件的人机交互,操作逻辑,界面美观的整体设计.好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适,简单,自由,充分体现软件的定位和特点.

------------------------------------------------------------------------------------------------------
1.
首先我们先来看看Android桌面情况

浅谈Android系统中的UI

看到上图,之前没有了解过Android系统的朋友可能会有疑问为何会有3张图片,而且为何背景不完全衔接?其实这是Android的三分屏设计,通过手指在屏幕上的左右滑动,我们可以切换三个不同的屏幕区域,如果使用软件甚至能够上下切换区域以及增加区域的数量,这使得桌面在有限的空间之内得到更大的空间,给予用户更多的空间去放置自己的图标,插件等。

 

川大科技园职业技能培训学院(3G嵌入式技术创新中心)

咨询热线:400-702-8828  028-6862 6028

网址:http://www.ctic.cc

地址:四川省成都市科华北路47号(川大科技大厦)2楼

posted @ 2010-04-27 17:54 怡馨 阅读(146) | 评论 (0)编辑 收藏
  2010年4月26日

虽然没有看到Gphone的真正模样,但据了解,Google的Android平台手机将在2008年下半年正式揭开面纱.对于消费者来说,Google手机将是一款通用的、功能强大的、设备完整的手机产品。

  美国咨询研究集团Strategy Analytics的最新报告指出,Google最近公布的android手机软件平台,很可能在2008年时获得全球智能手机软件平台2%的份额。

  而老牌智能手机软件平台制造商Symbian发言人则表示:Google的android只不过是另一个LinuxSymbian对其它软件与其形成的竞争并不感到担心。除了北美之外,Symbian在其它地区智能手机市场都占有大部分市场份额。

  与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。

  但其最震撼人心之处在于Android手机系统的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。

  Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。谷歌移动平台主管安迪·鲁宾(Andy Rubin)表示,与软件开发合作伙伴的密切接触正在进行中。从去年11月开始,谷歌开始向服务提供商、芯片厂商和手机销售商提供Android平台,并组建“开放手机联盟”,其成员超过30家。

 

 

川大科技园职业技能培训学院(3G嵌入式技术创新中心)

咨询热线:400-702-8828  028-6862 6028

网址:http://www.ctic.cc

地址:四川省成都市科华北路47号(川大科技大厦)2楼

posted @ 2010-04-26 10:26 怡馨 阅读(154) | 评论 (0)编辑 收藏
仅列出标题  下一页