`

Android学习08-----Android中的基本控件(下)(3)_随笔提示文本:AutoCompleteTextView 拖动条:SeekBar和评分组件

阅读更多

 

一、随笔提示文本: AutoCompleteTextView

res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <AutoCompleteTextView
        android:id="@+id/myauto"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
 

AutoCompleteTextViewActivity.java

package com.iflytek.demo;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class AutoCompleteTextViewActivity extends Activity {
	private static final String DATA[] = new String[] { "hello", "hello java",
			"hello xdwang", "hello world", "mldn Android" };
	private AutoCompleteTextView myauto = null;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_dropdown_item_1line, DATA); // 数据集
		this.myauto = (AutoCompleteTextView) super.findViewById(R.id.myauto); // 取得组件
		this.myauto.setAdapter(adapter); // 设置内容
	}
}
 

 

二、拖动条: SeekBar

1 、事件处理

Main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <SeekBar
        android:id="@+id/seekbar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
 

SeekBar01Activity.java

package com.iflytek.demo;

import android.app.Activity;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.widget.SeekBar;
import android.widget.TextView;

public class SeekBar01Activity extends Activity {
	private SeekBar seekbar = null;
	private TextView text = null;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		this.seekbar = (SeekBar) super.findViewById(R.id.seekbar); // 取得组件
		this.text = (TextView) super.findViewById(R.id.text); // 取得组件
		this.text.setMovementMethod(ScrollingMovementMethod.getInstance()); // 文本组件的内容可以滚动
		this.seekbar
				.setOnSeekBarChangeListener(new OnSeekBarChangeListenerImpl());
	}

	private class OnSeekBarChangeListenerImpl implements
			SeekBar.OnSeekBarChangeListener {
		@Override
		public void onStartTrackingTouch(SeekBar seekBar) {
			SeekBar01Activity.this.text.append("*** 开始拖动,当前值:"
					+ seekBar.getProgress() + "\n");
		}

		@Override
		public void onProgressChanged(SeekBar seekBar, int progress,
				boolean fromUser) {
			SeekBar01Activity.this.text.append("*** 正在拖动,当前值:"
					+ seekBar.getProgress() + "\n");
		}

		@Override
		public void onStopTrackingTouch(SeekBar seekBar) {
			SeekBar01Activity.this.text.append("*** 停止拖动,当前值:"
					+ seekBar.getProgress() + "\n");
		}

	}
}
 

 

1、  图片浏览

Main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/pic"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/pic_0" />

    <SeekBar
        android:id="@+id/seekbar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
 

SeekBar02Activity.java

package com.iflytek.demo;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.SeekBar;

public class SeekBar02Activity extends Activity {
	private SeekBar seekbar = null;
	private ImageView pic = null;
	private int picData[] = new int[] { R.drawable.pic_0, R.drawable.pic_1,
			R.drawable.pic_2, R.drawable.pic_3, R.drawable.pic_4,
			R.drawable.pic_5, R.drawable.pic_6, R.drawable.pic_7,
			R.drawable.pic_8, R.drawable.pic_9 };

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		this.seekbar = (SeekBar) super.findViewById(R.id.seekbar); // 取得组件
		this.pic = (ImageView) super.findViewById(R.id.pic); // 取得组件
		this.seekbar.setMax(9); // 0 ~ 9的范围
		this.seekbar
				.setOnSeekBarChangeListener(new OnSeekBarChangeListenerImpl());
	}

	private class OnSeekBarChangeListenerImpl implements
			SeekBar.OnSeekBarChangeListener {
		@Override
		public void onStartTrackingTouch(SeekBar seekBar) {
		}

		@Override
		public void onProgressChanged(SeekBar seekBar, int progress,
				boolean fromUser) {
			SeekBar02Activity.this.pic
					.setImageResource(SeekBar02Activity.this.picData[seekBar
							.getProgress()]);// 设置显示图片
		}

		@Override
		public void onStopTrackingTouch(SeekBar seekBar) {
		}

	}
}
 

 

3 、改变屏幕亮度

SeekBar03Activity.java

package com.iflytek.demo;

import android.app.Activity;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.SeekBar;

public class SeekBar03Activity extends Activity {
	private SeekBar seekbar = null;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		this.seekbar = (SeekBar) super.findViewById(R.id.seekbar); // 取得组件
		this.seekbar.setMax(100);
		this.seekbar
				.setOnSeekBarChangeListener(new OnSeekBarChangeListenerImpl());
	}

	private class OnSeekBarChangeListenerImpl implements
			SeekBar.OnSeekBarChangeListener {
		@Override
		public void onStartTrackingTouch(SeekBar seekBar) {
		}

		@Override
		public void onProgressChanged(SeekBar seekBar, int progress,
				boolean fromUser) {
			SeekBar03Activity.this.setScreenBrightness((float) seekBar
					.getProgress() / 100);
		}

		@Override
		public void onStopTrackingTouch(SeekBar seekBar) {
		}
	}

	private void setScreenBrightness(float num) { // 0 ~ 1表示亮度
		WindowManager.LayoutParams layoutParams = super.getWindow()
				.getAttributes(); // 取得屏幕的属性
		layoutParams.screenBrightness = num; // 设置屏幕亮度
		super.getWindow().setAttributes(layoutParams); // 重新设置窗口的属性
	}
}
 

 

三、评分组件: RatingBar

1 、基本实现

RatingBar01Activity.java

package com.iflytek.demo;

import android.app.Activity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.TextView;

public class RatingBar01Activity extends Activity {
	private RatingBar ratingBarA = null;
	private TextView text = null;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		this.ratingBarA = (RatingBar) super.findViewById(R.id.ratingbarA);
		this.text = (TextView) super.findViewById(R.id.text);
		this.ratingBarA
				.setOnRatingBarChangeListener(new OnRatingBarChangeListenerImpl());
	}

	private class OnRatingBarChangeListenerImpl implements
			OnRatingBarChangeListener {
		@Override
		public void onRatingChanged(RatingBar ratingBar, float rating,
				boolean fromUser) {
			RatingBar01Activity.this.text.append("*** 当前值(Rating):"
					+ ratingBar.getRating() + ",步长:" + ratingBar.getStepSize()
					+ "\n");
		}
	}
}
 

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <RatingBar
        android:id="@+id/ratingbarA"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:isIndicator="false"
        android:numStars="5"
        android:stepSize="0.5" />

    <RatingBar
        android:id="@+id/ratingbarB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:isIndicator="true"
        android:numStars="5"
        android:rating="3" />

    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
 

2、  自定义图片

drawable-hdpi/ star_conf_file.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+android:id/background"
        android:drawable="@drawable/star_empty"/>

    <item
        android:id="@+android:id/secondaryProgress"
        android:drawable="@drawable/star_empty"/>

    <item
        android:id="@+android:id/progress"
        android:drawable="@drawable/star_full"/>

</layer-list>
 

Value/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<style name="myRatingBar" parent="@android:style/Widget.RatingBar">
		<item name="android:progressDrawable">
			@drawable/star_conf_file
		</item>
		<item name="android:minHeight">53dip</item>
		<item name="android:maxHeight">53dip</item>
	</style>
</resources>
 

RatingBar02Activity.java

package com.iflytek.demo;

import android.app.Activity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.TextView;

public class RatingBar02Activity extends Activity {
	private RatingBar ratingBar = null;
	private TextView text = null;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		this.ratingBar = (RatingBar) super.findViewById(R.id.ratingbar);
		this.text = (TextView) super.findViewById(R.id.text);
		this.ratingBar
				.setOnRatingBarChangeListener(new OnRatingBarChangeListenerImpl());
	}

	private class OnRatingBarChangeListenerImpl implements
			OnRatingBarChangeListener {
		@Override
		public void onRatingChanged(RatingBar ratingBar, float rating,
				boolean fromUser) {
			int num = (int) rating;
			String result = null; // 保存文字信息
			switch (num) {
			case 5:
				result = "非常满意";
				break;
			case 4:
				result = "满意";
				break;
			case 3:
				result = "还可以";
				break;
			case 2:
				result = "不满意";
				break;
			case 1:
				result = "非常不满意";
				break;
			}
			RatingBar02Activity.this.text.setText(result);
		}
	}
}

 

分享到:
评论
1 楼 Think_Quietly 2013-04-18  
Thank you!

相关推荐

    Android开发实战经典-020704-随笔提示文本:AutoCompleteTextView源代码和视频教程.zip

    Android开发实战经典_020704_随笔提示文本:AutoCompleteTextView源代码和视频教程.zip

    Android控件大全以及各布局控件的使用方式

    ### Android控件大全及各布局控件的使用详解 #### 一、Android控件概述 ...通过以上介绍,您可以了解到Android控件的基本用法和一些高级控件的特性。掌握这些控件将有助于您开发出更加丰富和交互性强的应用程序。

    android控件--AutoCompleteTextView

    在本篇文章中,我们将深入探讨AutoCompleteTextView的使用方法,通过两个实际的学习案例来帮助理解其工作原理和实现方式。 **一、AutoCompleteTextView的基本属性与方法** 1. **android:completionThreshold**:这...

    Android开发(30)--AutoCompleteTextView和----MultiAutoCompleteTextView自动提示输入内容

    Android开发(30)--AutoCompleteTextView和----MultiAutoCompleteTextView自动提示输入内容

    Android自动文本填充AutoCompleteTextView

    在Android开发中,AutoCompleteTextView是一个非常实用的控件,它允许用户在输入时自动显示匹配的建议列表,极大地提高了用户体验。本实例将深入探讨如何使用AutoCompleteTextView,并结合具体的...

    Android---UI篇

    •Android---UI篇---AutoCompleteTextView(自动提示) • •Android---UI篇---Toast(提示) • •Android---UI篇---Button(按钮) • •Android---UI篇---TextView(文本框) • •Android---UI篇---EditText...

    autocompleteTextview控件

    在Android开发中,`AutoCompleteTextView` 是一个非常实用的UI组件,它允许用户在输入文本时接收下拉建议,从而提升用户体验。这个控件基于`EditText`,但增加了自动补全的功能,常用于搜索框或者表单输入场景。本篇...

    android中AutoCompleteTextView使用

    在Android开发中,`AutoCompleteTextView` 是一个非常实用的组件,它提供了自动补全功能,用户在输入时可以接收到下拉列表的建议,提高了输入效率。`MultiAutoCompleteTextView` 是 `AutoCompleteTextView` 的扩展,...

    android之AutoCompleteTextview控件

    在Android开发中,`AutoCompleteTextView` 是一个非常实用的控件,用于提供用户输入时的自动补全功能。这个控件能够显著提升用户体验,因为它能够根据用户输入的部分字符快速匹配并显示可能的选择,帮助用户更快地...

    Android仿百度谷歌自动提示——AutoCompleteTextView

    本文将详细介绍如何在Android中仿照百度和谷歌的自动提示功能,利用`AutoCompleteTextView`控件来实现这一功能。 `AutoCompleteTextView`是Android SDK中的一个视图组件,它继承自`EditText`,增加了自动补全的功能...

    Android学习之文本编辑控件的使用

    ### Android学习之文本编辑控件的使用 #### 一、引言 在Android应用程序开发过程中,文本输入是一项基本且重要的功能。用户通过输入文本来进行登录、注册或填写其他信息。为了实现这一功能,Android提供了`...

    android学习文档--控件2.pptx

    综上所述,`ImageView`、`DatePicker` 和 `TimePicker` 是 Android 应用开发中经常使用的控件。通过合理利用这些控件,开发者可以轻松地为应用增添丰富的交互功能。同时,熟练掌握这些控件的基本用法和高级特性对于...

    Android中常见控件的介绍和使用

    ### Android中常见控件的介绍和使用 #### TextView 文本框 **1.1 TextView 类的结构** `TextView` 是Android开发中极为重要的一个控件,主要用于显示文本内容。它是继承自 `View` 类的一个子类,即 `android....

    Android 中常见控件参考手册-中文版

    Android应用开发中,控件是构建用户界面的基本元素,决定了应用的外观和功能。本文档旨在详细介绍Android中一些常见控件的使用方法,帮助开发者更好地理解和运用它们。 1. **TextView文本框**: - TextView是用于...

    自定义AutoCompleteTextView下拉列表控件

    描述中提到“扩展Android系统自带的AutoCompleteTextView控件,逐字提示,支持自定义类对象指定显示字段”,这进一步明确了自定义的两个关键特性:逐字提示和自定义数据模型。 1. **逐字提示**:在默认的`...

    Android_AutoCompleteTextView

    在Android开发中,`AutoCompleteTextView`是一个非常实用的控件,它能够为用户输入提供动态的建议或提示,提升用户体验。这个控件类似于搜索引擎的自动补全功能,当用户在输入框中输入文本时,会根据已输入的部分...

    Android 学习笔记(十四):Activity-AutoCompleteTextView.doc

    Android 学习笔记(十四)主要聚焦于`AutoCompleteTextView`组件的使用,这是一种增强版的`EditText`,提供了自动补全功能。`AutoCompleteTextView`允许用户输入文本,并在用户输入达到一定字符数时显示一个下拉列表...

    Android基础教程(八)之-AutoCompleteTextView的应用

    `AutoCompleteTextView`是Android中用于实现自动补全功能的一种文本输入控件。它可以自动显示一个下拉列表,其中包含与用户输入的文本相匹配的建议项。通常情况下,`AutoCompleteTextView`与`ArrayAdapter`配合使用...

    android常见控件和使用方法

    ### Android常见控件及其使用方法 #### 基本组件 **1. 文本框(TextView)与编辑框...以上介绍了Android开发中常用的一些UI控件及其基本使用方法。掌握这些控件可以帮助开发者更好地构建功能丰富的应用程序。

    Android自定义AutoCompleteTextView

    在Android开发中,AutoCompleteTextView是一个非常常用的组件,它提供了自动补全的功能,适用于用户输入时需要提示相关信息的场景,比如搜索框、地址输入等。本文将深入探讨如何自定义AutoCompleteTextView,以满足...

Global site tag (gtag.js) - Google Analytics