一、信息提示框: Toast
1 、提示文字信息
Main.xml
Toast01Activity.java
package com.iflytek.demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class Toast01Activity extends Activity {
private Button butA = null;
private Button butB = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.butA = (Button) super.findViewById(R.id.butA);
this.butB = (Button) super.findViewById(R.id.butB);
this.butA.setOnClickListener(new OnClickListenerImplLong());
this.butB.setOnClickListener(new OnClickListenerImplShort());
}
private class OnClickListenerImplLong implements OnClickListener {
@Override
public void onClick(View v) {
Toast.makeText(Toast01Activity.this, "长时间显示的Toast信息提示框",
Toast.LENGTH_LONG).show();
}
}
private class OnClickListenerImplShort implements OnClickListener {
@Override
public void onClick(View v) {
Toast.makeText(Toast01Activity.this, "短时间显示的Toast信息提示框",
Toast.LENGTH_SHORT).show();
}
}
}
2 、自定义显示风格
Toast02Activity.java
package com.iflytek.demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
public class Toast02Activity extends Activity {
private Button but = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.but = (Button) super.findViewById(R.id.but);
this.but.setOnClickListener(new OnClickListenerImpl());
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View v) {
Toast myToast = Toast.makeText(Toast02Activity.this, "安徽合肥",
Toast.LENGTH_LONG);
myToast.setGravity(Gravity.CENTER, 60, 30);
LinearLayout myToastView = (LinearLayout) myToast.getView(); // 线性布局
ImageView img = new ImageView(Toast02Activity.this);
img.setImageResource(R.drawable.ic_launcher);
myToastView.addView(img, 0); // 放在最前面
myToast.show();
}
}
}
二、图片切换: ImageSwitcher
Main.xml
ImageSwitcherActivity.java
package com.iflytek.demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory;
public class ImageSwitcherActivity extends Activity {
private Button butPrevious = null;
private Button butNext = null;
private ImageSwitcher myImageSwitcher = null;
private int[] imgRes = new int[] { R.drawable.ispic_a, R.drawable.ispic_b,
R.drawable.ispic_c, R.drawable.ispic_d, R.drawable.ispic_e };
private int foot = 0; // 表示当前已经显示的数组图片的脚标
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.myImageSwitcher = (ImageSwitcher) super
.findViewById(R.id.myImageSwitcher);
this.butPrevious = (Button) super.findViewById(R.id.butPrevious);
this.butNext = (Button) super.findViewById(R.id.butNext);
this.myImageSwitcher.setFactory(new ViewFactoryImpl());
this.myImageSwitcher.setImageResource(this.imgRes[this.foot++]);
this.myImageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_in));
this.myImageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_out));
this.butPrevious.setOnClickListener(new OnClickListenerPrevious());
this.butNext.setOnClickListener(new OnClickListenerNext());
}
private class OnClickListenerPrevious implements OnClickListener {
@Override
public void onClick(View view) {
ImageSwitcherActivity.this.myImageSwitcher
.setImageResource(ImageSwitcherActivity.this.imgRes[ImageSwitcherActivity.this.foot--]);
ImageSwitcherActivity.this.checkButEnable();
}
}
private class OnClickListenerNext implements OnClickListener {
@Override
public void onClick(View view) {
ImageSwitcherActivity.this.myImageSwitcher
.setImageResource(ImageSwitcherActivity.this.imgRes[ImageSwitcherActivity.this.foot++]);
ImageSwitcherActivity.this.checkButEnable();
}
}
private void checkButEnable() { // 判断按钮是否可用
if (this.foot < this.imgRes.length - 1) {
this.butNext.setEnabled(true);
} else {
this.butNext.setEnabled(false);
}
if (this.foot == 0) {
this.butPrevious.setEnabled(false);
} else {
this.butPrevious.setEnabled(true);
}
}
private class ViewFactoryImpl implements ViewFactory {
@Override
public View makeView() {
ImageView img = new ImageView(ImageSwitcherActivity.this);
img.setBackgroundColor(0xFFFFFFFF); // 设置背景
img.setScaleType(ImageView.ScaleType.CENTER);
img.setLayoutParams(new ImageSwitcher.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); // 定义组件
return img;
}
}
}
三、文本切换: TextSwitcher
Main.xml
TextSwitcherActivity.java
package com.iflytek.demo;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.TextSwitcher;
import android.widget.TextView;
import android.widget.ViewSwitcher.ViewFactory;
public class TextSwitcherActivity extends Activity {
private TextSwitcher myTextSwitcher = null;
private Button but = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.myTextSwitcher = (TextSwitcher) super
.findViewById(R.id.myTextSwitcher);
this.but = (Button) super.findViewById(R.id.but);
this.myTextSwitcher.setFactory(new ViewFactoryImpl());
this.myTextSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_in));
this.myTextSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_out));
this.but.setOnClickListener(new OnClickListenerImpl());
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View v) {
TextSwitcherActivity.this.myTextSwitcher.setText("当前时间为:"
+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")
.format(new Date()));
}
}
private class ViewFactoryImpl implements ViewFactory {
@Override
public View makeView() {
TextView txt = new TextView(TextSwitcherActivity.this);
txt.setBackgroundColor(0xFFFFFFFF);
txt.setTextColor(0xFF000000);
txt.setLayoutParams(new TextSwitcher.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
txt.setTextSize(30);
return txt;
}
}
}
四、拖拉图片: Gallery
1 、 BaseAdapter 实现
Gallery01_BaseAdapterActivity.java
package com.iflytek.demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Gallery;
import android.widget.Toast;
public class Gallery01_BaseAdapterActivity extends Activity {
private Gallery gallery = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.gallery = (Gallery) super.findViewById(R.id.myGallery);
this.gallery.setAdapter(new ImageGalleryAdapter(this));
this.gallery.setOnItemClickListener(new OnItemClickListenerImpl()) ;
}
private class OnItemClickListenerImpl implements OnItemClickListener {
@Override
public void onItemClick(AdapterView> parent, View view, int position,
long id) {
Toast.makeText(Gallery01_BaseAdapterActivity.this, String.valueOf(position),
Toast.LENGTH_SHORT).show();
}
}
}
ImageGalleryAdapter.java
package com.iflytek.demo;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
public class ImageGalleryAdapter extends BaseAdapter {
private Context context = null;
// 里面的所有方法表示的是可以根据指定的显示图片的数量,进行每个图片的处理
private int[] imgRes = new int[] { R.drawable.ispic_a, R.drawable.ispic_b,
R.drawable.ispic_c, R.drawable.ispic_d, R.drawable.ispic_e }; // 这些是所要显示的图片的资源
public ImageGalleryAdapter(Context context) {
this.context = context;
}
@Override
public int getCount() { // 取得要显示的内容的数量
return this.imgRes.length; // 资源的数量
}
@Override
public Object getItem(int position) {
return this.imgRes[position];
}
@Override
public long getItemId(int position) { // 取得项的ID
return this.imgRes[position];
}
// 将资源设置到一个组件之中,很明显这个组件就是ImageView组件
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView img = new ImageView(this.context);
img.setBackgroundColor(0xFFFFFFFF);
img.setImageResource(this.imgRes[position]); // 将指定的资源设置到ImageView中
img.setScaleType(ImageView.ScaleType.CENTER); // 居中显示
img.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
return img;
}
}
main.xml
2 、 SimpleAdapter 实现
grid_layout.xml
main.xml
Gallery02_SimpleAdapterActivity.java
package com.iflytek.demo;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Gallery;
import android.widget.SimpleAdapter;
import android.widget.Toast;
public class Gallery02_SimpleAdapterActivity extends Activity {
private Gallery gallery = null;
private SimpleAdapter simpleAdapter = null;
private List
3 、图片浏览
Gallery03_Activity.java
package com.iflytek.demo;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.ViewSwitcher.ViewFactory;
public class Gallery03_Activity extends Activity {
private Gallery gallery = null;
private SimpleAdapter simpleAdapter = null;
private List> list = new ArrayList>();
private ImageSwitcher myImageSwitcher = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.initAdapter();
this.gallery = (Gallery) super.findViewById(R.id.myGallery);
this.myImageSwitcher = (ImageSwitcher) super
.findViewById(R.id.myImageSwitcher);
this.gallery.setAdapter(this.simpleAdapter);
this.myImageSwitcher.setFactory(new ViewFactoryImpl());
this.gallery.setOnItemClickListener(new OnItemClickListenerImpl());
}
private void initAdapter() {
Field[] fields = R.drawable.class.getDeclaredFields(); // 取得全部的属性
for (int x = 0; x < fields.length; x++) {
if (fields[x].getName().startsWith("ispic_")) { // 我们所需要的图片
Map map = new HashMap();
try {
map.put("img", fields[x].getInt(R.drawable.class)); // 必须定义好名称是img
} catch (Exception e) {
}
this.list.add(map);
}
}
this.simpleAdapter = new SimpleAdapter(this, this.list,
R.layout.grid_layout, new String[] { "img" },
new int[] { R.id.img });
}
private class OnItemClickListenerImpl implements OnItemClickListener {
@Override
public void onItemClick(AdapterView> parent, View view, int position,
long id) {
Map map = (Map) parent
.getAdapter().getItem(position);
Gallery03_Activity.this.myImageSwitcher.setImageResource(map.get("img"));
}
}
private class ViewFactoryImpl implements ViewFactory {
@Override
public View makeView() {
ImageView img = new ImageView(Gallery03_Activity.this);
img.setBackgroundColor(0xFFFFFFFF);
img.setScaleType(ImageView.ScaleType.CENTER);
img.setLayoutParams(new ImageSwitcher.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
return img;
}
}
}
grid_layout.xml
main.xml