一、随笔提示文本: 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); } } }