Android[初级教程] 第九章 Gallery控件和ImageSwitcher控件

这一章我们介绍Gallery控件和ImageSwitcher控件,这次妖怪们说,现在iphone很流行,上次的通辑令不好看,没有互动,有没有好看一点的通辑令呢?呵呵,这次我们就综合两个控件来做个好看的通辑令.先上图吧

OK,我们先上main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:text="西游记各主人公通辑令" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <ImageSwitcher android:id="@+id/imageSwitcher" android:layout_width="320dp" android:layout_height="280dp"></ImageSwitcher> <Gallery android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/gallery1"></Gallery> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="@string/hello" android:id="@+id/text"></TextView> </LinearLayout>

主Layout中定义了一个ImageSwitcher和一个Gallery控件

再定义了一个gallery_item.xml的Layout,是Gallery控件中既有图又有字的Layout

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/item_imageView" android:src="@drawable/bajie" android:layout_gravity="center" android:scaleType="fitXY" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:layout_height="wrap_content" android:layout_width="wrap_content"></ImageView> <TextView android:text="TextView" android:id="@+id/item_textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="30dp" android:layout_marginRight="30dp"></TextView> </LinearLayout>

好,现在上主要的java代码:

import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageSwitcher; import android.widget.ImageView; import android.widget.TextView; import android.widget.ViewSwitcher.ViewFactory; public class ButtonDemoActivity extends Activity { private TextView text = null; private int[] image = { R.drawable.tangseng, R.drawable.wukong, R.drawable.bajie, R.drawable.shaseng }; private String[] item = { "唐僧", "孙悟空 ", "猪八戒", "沙和尚" }; private Gallery gallery; private ImageSwitcher switcher; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 通过ID查找到main.xml中的TextView控件 text = (TextView) findViewById(R.id.text); // 通过ID查找到main.xml中的ImageSwitcher控件 switcher = (ImageSwitcher) findViewById(R.id.imageSwitcher); switcher.setFactory(new ViewFactory() { // 创建ImageSwitcher中的视图 @Override public View makeView() { ImageView imageView = new ImageView(ButtonDemoActivity.this); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setPadding(10, 10, 10, 10); imageView.setLayoutParams(new ImageSwitcher.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); return imageView; } }); // 通过ID查找到main.xml中的Gallery控件 gallery = (Gallery) findViewById(R.id.gallery1); // 设置Gallery适配器 BaseAdapter adapter = new BaseAdapter() { // 取得适配器中的视图 @Override public View getView(int position, View convertView, ViewGroup parent) { //将适配器中缓冲的视图控件返回 View view = convertView; if (view == null) { // 将gallery_item.xml适配到View中 LayoutInflater inflater = LayoutInflater .from(getApplicationContext()); view = inflater.inflate(R.layout.gallery_item, null); } // 查找gallery_item.xml中的ImageView控件 ImageView imageView = (ImageView) view .findViewById(R.id.item_imageView); imageView.setImageResource(image[position]); // 查找gallery_item.xml中的TextView控件 TextView textView = (TextView) view .findViewById(R.id.item_textView); textView.setText(item[position]); return view; } @Override public long getItemId(int position) { return position; } @Override public Object getItem(int position) { return position; } @Override public int getCount() { return image.length; } }; gallery.setAdapter(adapter); // 设置Gallery单项选择监听器 gallery.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) { String str = "你现在查看的是" + item[position]; updateText(str); switcher.setImageResource(image[position]); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); } private void updateText(String string) { // 将文本信息设置给TextView控件显示出来 text.setText(string); } }

呵呵,这下妖怪们的建议满足了,妖怪们开心都抓唐僧去了.好了,这一章也结束了,谢谢


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值