您的位置:首页 > 产品设计 > UI/UE

【Android基础】(8)UI控件(二)

2014-12-17 22:26 239 查看
文章地址:/article/1876453.html

继续UI控件第二部分。

一 SeekBar

这是一个进度条控件,xml文件:
<SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />
SeekBar的使用也非常简单:
SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar1);
		seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				// 停止拖动执行的方法
			}

			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				// 开始拖动执行的方法
			}

			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
				// 拖动变化执行的方法
				System.out.println("当前进度条为:" + progress + "%");
			}
		});
三个回调方法使用也都标明了。

二 GridView

网格布局也是使用的非常广泛,类似于ListView,同样也是使用到了适配器。xml文件:
<GridView
        android:id="@+id/gridView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="3" />
为了方便我们还是使用了ArrayAdapter适配器:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1);
		GridView gridView = (GridView) findViewById(R.id.gridView1);
		gridView.setAdapter(adapter);
		for (int i = 0; i < 60; i++) {
			adapter.add("测试数据" + i);
		}


三 ProgressDialog

我们这里使用一个按钮来控制进度对话框的显示,当进度加载满后进度对话框消失:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="显示进度对话框" />

</LinearLayout>
然后是Java文件:
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				final ProgressDialog progressDialog = ProgressDialog.show(
						MainActivity.this, "加载中", "正在加载,请稍后");
				new Thread() {
					public void run() {
						try {
							Thread.sleep(3000);
							progressDialog.dismiss();
						} catch (InterruptedException e) {
							e.printStackTrace();
						}
					};
				}.start();
			}
		});
点击按钮后开始加载进度对话框,3秒后加载消失。

四 Notification

通知Notification我们还是做成在点击按钮后显示通知。

<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="显示通知" />
Java文件:
final NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
		manager.cancel(R.layout.activity_main);
		findViewById(R.id.button1).setOnClickListener(new OnClickListener() {

			@SuppressWarnings("deprecation")
			@Override
			public void onClick(View v) {
				Notification notification = new Notification(
						R.drawable.ic_launcher, "Ticker", System
								.currentTimeMillis());
				notification.setLatestEventInfo(MainActivity.this, "标题", "内容",
						PendingIntent.getActivity(MainActivity.this, 1,
								getIntent(), 0));
				manager.notify(R.layout.activity_main, notification);
			}
		});

使用getSystemService(Context.NOTIFICATION_SERVICE)获取通知管理对象。
其中Notification构造函数第一个参数是图标,第二个参数Ticker是在通知栏显示的文本,第三个参数是显示的时间。
setLatestEventInfo第一个参数是Context上下文,第二个参数是下拉通知后显示的标题,第三个参数是内容,第四个参数是一个PendingIntent,意思是点击通知后的意图对象。
PendingIntent.getActivity第一个参数是Context上下文,第二个参数是请求码,第三个是Intent对象,第四个是Flag值。
最后调用manager的notify即可显示通知,notify第一个参数是改通知独一无二的id值,传当前Activity的布局文件id是一个不错的选择。

五 ScrollView

ScrollView是可滚动的视图。在这个布局下多添加几个控件:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="显示通知" />

        <ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <SeekBar
            android:id="@+id/seekBar1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <CheckBox
            android:id="@+id/checkBox1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="CheckBox" />

        <ProgressBar
            android:id="@+id/progressBar2"
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" />

        <EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPassword" >

            <requestFocus />
        </EditText>

        <RadioGroup
            android:id="@+id/radioGroup1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <RadioButton
                android:id="@+id/radio0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                android:text="RadioButton" />

            <RadioButton
                android:id="@+id/radio1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="RadioButton" />

            <RadioButton
                android:id="@+id/radio2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="RadioButton" />

            <RadioGroup
                android:id="@+id/radioGroup2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <RadioButton
                    android:id="@+id/radio3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:checked="true"
                    android:text="RadioButton" />

                <RadioButton
                    android:id="@+id/radio4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="RadioButton" />

                <RadioButton
                    android:id="@+id/radio5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="RadioButton" />
            </RadioGroup>
        </RadioGroup>

        <EditText
            android:id="@+id/editText2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textEmailAddress" />

        <EditText
            android:id="@+id/editText3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPersonName" />

        <EditText
            android:id="@+id/editText4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPersonName" />
    </LinearLayout>

</ScrollView>
ScrollView作为最外层的标签,他的子标签必须只能有一个控件,我们这里使用了LinearLayout,里面放了许多控件。
运行可以看到可以拖动整个界面。

六 RatingBar

评价条。xml:
<RatingBar
        android:id="@+id/ratingBar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
Java文件:
RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar1);
		ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

			@Override
			public void onRatingChanged(RatingBar ratingBar, float rating,
					boolean fromUser) {
				System.out.println("评价为:" + rating);
			}
		});
rating也可以为小数,0.5的增减幅度可以看到使用起来非常简单。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: