10天学通Android开发(4)-用户布局与常用控件-创新互联

  1. 常用布局

    专注于为中小企业提供成都网站制作、网站建设、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业偃师免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

FrameLayout:子元素没有相对位置概念,都相对于左上角

 LinearLayout:线性布局,一个接一个,水平或垂直

RelativeLayout:相对布局,可相对其它子元素

TableLayout:水平和垂直LinearLayout的混和

如:

   xmlns:tools="http://schemas.android.com/tools"

   android:layout_width="match_parent"

   android:layout_height="match_parent"

     tools:context="com.example.android10_4.MainActivity">

   

       android:id="@+id/textView2"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="@string/hello_world"/>

   

       android:id="@+id/textView1"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="TextView" />

改为竖排的话,加上:

android:orientation="vertical"

二、控件介绍

1)ListView:

private ListView lv;

                                     privateArrayAdapter dapter1;

 

   @Override

   protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_main);

        dapter1=newArrayAdapter(this,android.R.layout.simple_list_item_1);

       lv=(ListView)findViewById(R.id.lv);

       //配置数据

       lv.setAdapter(dapter1);

       dapter1.add("Hello");

       dapter1.add("ByBy");

   }

2)RadioGroup和RadioGroup

RadioButton和RadioGroup的关系:

1、RadioButton表示单个圆形单选框,而RadioGroup是可以容纳多个RadioButton的容器

2、每个RadioGroup中的RadioButton同时只能有一个被选中

3、不同的RadioGroup中的RadioButton互不相干,即如果组A中有一个选中了,组B中依然可以有一个被选中

4、大部分场合下,一个RadioGroup中至少有2个RadioButton

5、大部分场合下,一个RadioGroup中的RadioButton默认会有一个被选中,并建议您将它放在RadioGroup中的起始位置

3) DatePicker和TimePicker

一、DatePicker继承自FrameLayout类,日期选择控件的主要功能是向用户提供包含年、月、日的日期数据并允许用户对其修改。如果要捕获用户修改日期选择控件中的数据事件,需要为DatePicker添加OnDateChangedListener监听器。

二、TimePicker也继承自FrameLayout类。时间选择控件向用户显示一天中的时间(可以为24小时,也可以为AM/PM制),并允许用户进行选择。如果要捕获用户修改时间数据的事件,便需要为TimePicker添加OnTimeChangedListener监听器

4) Spinner

当需要用户选择的时候,可以提供一个下拉列表将所有可选的项列出来。供用户选择。

5)ProgressBar和SeekBar

ProgressBar:当用户在后台执行一些任务时,在前台展示的信息,用于表示任务正在处理,请用户等待或者给用户展示处理的进度消息等

SeekBar:是相对高级的进度条,是可以拖动的,可以改变进度的一个进度条控件,比如,应用程序中用户可以对音效进行控制,这就可以使用拖动条来实现

6)GridView

GridView (网格视图)是按照行列的方式来显示内容的,一般用于显示图片等内容,比如实现九宫格图,用GridView是选,也是最简单的

7)ProgressDialog,顾名思义,就是一个进度对话框,常用于显示载入进度、下载进度等,合理使用ProgressDialog能增加用户体验,让用户知道现在程序所处的状态

8)Notification

Notification是Android中常用的一种通知方式,当有未读短信或未接电话的时候,屏幕状态栏就会有提示图标,这时可以下拉状态栏来读取通知。在使用微信的时(微信在后台运行),如果有新消息时便会发出声音提示,状态栏也有相应的微信提示

9)ScrollView滚动视图是指当拥有很多内容,屏幕显示不完时,需要通过滚动跳来显示的视图。ScrollView只支持垂直滚动。

10)RatingBar是SeekBar和ProgressBar的扩展,用星星来评级,使用的默认大小RatingBar时,用户可以触摸/拖动或使用键来设置评分,它有大小两种样式,其中大的只适合指示,不适合于用户交互

11)ImageSwitcher类提供了图片切换功能,通过第三方的操作,设置当前ImageSwitcher显示的图片,同时设置图片变换的动画。,控制图片展示效果的一个控件,如:幻灯片效果

12) Gallery组件主要用于横向显示图像列表,不过按常规做法。Gallery组件只能有限地显示指定的图像

13)BaseAdapter是经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery及GridView等UI显示组件

ListView案例:

  1. 新建项目,加进ListView

       android1:id="@+id/listView"

       android1:layout_width="fill_parent"

       android1:layout_height="fill_parent">

   

  1. 定义数据适配器

    private ArrayAdapteradapter;

3)赋值

adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1);

       lv.setAdapter(adapter);

       adapter.add("Hello 1");

       adapter.add("Hello 2");

       adapter.add("Hello 3");

  可以运行下,比较简单。

4)数据项比较简单,只有一项,下面继续完善,创建列表项数据类

publicclass ListCellData {

  public ListCellData(String userName,String sex,int age){

     this.userName=userName;

     this.sex=sex;

     this.age =age;

  }

  private String userName="张三";

  public String getUserName() {

     returnuserName;

  }

  publicvoid setUserName(String userName) {

     this.userName = userName;

  }

  public String getSex() {

     returnsex;

  }

  publicvoid setSex(String sex) {

     this.sex = sex;

  }

  publicint getAge() {

     returnage;

  }

  publicvoid setAge(int age) {

     this.age = age;

  }

  private String sex="女";

  privateintage =0;

}

5)

private ArrayAdapter adapter;

6)

adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1);//

        lv.setAdapter(adapter);

        adapter.add(new ListCellData("小明","女",19));

        adapter.add(new ListCellData("张三","男",29));

        adapter.add(new ListCellData("李四","女",89));

7)重写显示内容,否则显示的为类名

public String toString()

  {

     return getUserName();

             }

8)当前类为处理器,实现OnItemClickListener,程序里面有很多的部件需要点击执行动作的时候可以使用implements OnClickListener

public class MainActivity extendsActionBarActivity implements OnItemClickListener

9) 重写列表项点击事件

@Override

   publicvoid onItemClick(AdapterViewparent,View view,int position,long id)

   {

     ListCellDatadata=adapter.getItem(position);

     Toast.makeText(this, String.format("名字:%s,性别:%s",data.getUserName(),data.getSex()), Toast.LENGTH_SHORT).show();

   }

 ×××:

http://down.51cto.com/data/1967639

参考:

http://www.cnblogs.com/linzheng/archive/2011/01/18/1938737.html

http://www.oschina.net/question/54100_33274

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站栏目:10天学通Android开发(4)-用户布局与常用控件-创新互联
当前网址:http://ybzwz.com/article/dippjd.html