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

本文详细介绍了Android开发中常用的UI控件,包括SeekBar、GridView、ProgressDialog、Notification以及ScrollView,并提供了实例代码说明如何实现每个组件的功能。此外,还展示了如何使用ScrollView结合多个控件创建可滚动界面,以及如何利用Notification进行通知提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章地址:http://blog.youkuaiyun.com/scarthr/article/details/41989963

继续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的增减幅度可以看到使用起来非常简单。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值