ImageSwitcher&Gallery

[复制链接]
lxx 发表于 2017-11-21 18:32:29 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
第一步:布局文件main.xml中加入ImageSwitcherGallery 控件:
<?xml version="1.0"encoding="utf-8"?>
<RelativeLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
      
       <ImageSwitcher
      android:id="@+id/switcher"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:layout_alignParentTop="true"
              android:layout_alignParentLeft="true"/>
              
       <Gallery android:id="@+id/gallery"
      android:background="#55000000"
              android:layout_width="fill_parent"
              android:layout_height="60dp"
              android:layout_alignParentBottom="true"
              android:layout_alignParentLeft="true"
              android:gravity="center_vertical"
              android:spacing="16dp"/>
</RelativeLayout>

第二步:加入图片资源:在教材所给代码的路径:7\ex07_Widget\res\drawable
        把整个文件夹都拷到工程的res目录下
第三步:主程序:
package com.xmobileapp.SwitcherDemo;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.ViewSwitcher;
import android.widget.Gallery.LayoutParams;
public class SwitcherDemoActivity extends Activity implements
AdapterView.OnItemSelectedListener,ViewSwitcher.ViewFactory {
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        //让程序没有titlebar,使显示区域增大
        setContentView(R.layout.main);
        setTitle("ImageShowActivity");
        mSwitcher = (ImageSwitcher) findViewById(R.id.switcher);
        //ImageSwitcher调用时首先要有一个Factory为它提供一个View,然后ImageSwitcher就可以初始化各种资源。
        mSwitcher.setFactory(this);
        //以动画形式对图片进行切换
        mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_in));//资源读入到ImageSwitcher中实现的动画效果,动画从系统文件读取
        mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_out));//资源由ImageSwitcher消失时实现的动画效果
        Gallery g = (Gallery)findViewById(R.id.gallery);
        g.setAdapter(new ImageAdapter(this));
        g.setOnItemSelectedListener(this);
    }
    public void onItemSelected(AdapterView parent, View v, int position, long id) {
        mSwitcher.setImageResource(mImageIds[position]);
    }
    public void onNothingSelected(AdapterView parent) {
    }
   
    //makeView这个方法为ImageSwitch返回了一个View
    public View makeView() {
        ImageView i = new ImageView(this);
        i.setBackgroundColor(0xFF000000);
        i.setScaleType(ImageView.ScaleType.FIT_CENTER);
        i.setLayoutParams(newImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.FILL_PARENT));
        return i;
    }
    private ImageSwitcher mSwitcher;
    public class ImageAdapter extends BaseAdapter {
        public ImageAdapter(Context c) {
            mContext = c;
        }
        public int getCount() {
            return mThumbIds.length;
        }
        public Object getItem(int position) {
            return position;
        }
        public long getItemId(int position) {
            return position;
        }
        //getView函数返回要显示的imageview
        public View getView(int position, View convertView, ViewGroupparent) {
            ImageView i = new ImageView(mContext);
            i.setImageResource(mThumbIds[position]);//获得图片源文件
            i.setAdjustViewBounds(true);
            i.setLayoutParams(newGallery.LayoutParams(
                    LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
               //设置图片大小
            i.setBackgroundResource(R.drawable.picture_frame);//设置图片背景
            return i;
        }
        private Context mContext;
    }
    private Integer[] mThumbIds = {
            R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
            R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
            R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
            R.drawable.sample_thumb_6, R.drawable.sample_thumb_7};
    private Integer[] mImageIds = {
            R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2,
            R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5,
            R.drawable.sample_6, R.drawable.sample_7};
}

精彩评论1

efedfdsf5645A 发表于 2017-12-3 06:05:35 | 显示全部楼层
666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关注0

粉丝0

帖子4

发布主题
国内最专业的源码技术交流社区
全国免费热线电话

0373-5171417

周一至周日9:00-23:00

反馈建议

admin@eenot.com 在线QQ咨询

扫描二维码关注我们