Android -- ImageSwitch和Gallery 混合使用

1. 实现效果

2. 实现代码

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

    <ImageSwitcher
        android:id="@+id/is_switcher"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />

    <Gallery
        android:id="@+id/gallery"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:background="#55000000"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:gravity="center_vertical"
        android:spacing="16dp"/>

</RelativeLayout>

layout

public class MainActivity extends Activity implements OnItemSelectedListener,
        ViewFactory {

    /**
     * ImageSwitcher 控件
     */
    private ImageSwitcher is_switcher;

    /**
     * Gallery 控件
     */
    private Gallery galley;

    /**
     * 小图使用的数组
     */
    private Integer[] mThumbIds = { R.drawable.pic, R.drawable.pic2,
            R.drawable.pic3, R.drawable.pic4, R.drawable.pic5 };

    /**
     * 大图使用的数组
     */
    private Integer[] mImageIds = { R.drawable.ic_launcher,
            R.drawable.pic2, R.drawable.ic_launcher,
            R.drawable.pic2, R.drawable.ic_launcher };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        /**
         * 使用无标题的样式
         */
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        /**
         * 设置显示的布局文件
         */
        setContentView(R.layout.activity_main);

        /**
         * 实例化   ImageSwitcher 控件并与之关联
         */
        is_switcher = (ImageSwitcher) findViewById(R.id.is_switcher);

        /**
         * 指代下面的makeView 因为实现了ViewFactory 接口
         */
        is_switcher.setFactory(this);

        // 设置进入动画和出去动画  使用系统默认的样式
        is_switcher.setInAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_in));
        is_switcher.setOutAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_out));

        /**
         * 实例化一个Gallery控件并与之绑定
         */
        galley = (Gallery) findViewById(R.id.gallery);

        // 为Gallery 对象设置适配器
        galley.setAdapter(new ImageAdapter(this));

        /**
         * 设置当Gallery对象选项被选择时的监听事件
         */
        galley.setOnItemSelectedListener(this);

    }

    @Override
    public View makeView() {

        ImageView i = new ImageView(this);
        i.setBackgroundColor(0xFF000000);
        i.setScaleType(ImageView.ScaleType.FIT_CENTER);
        i.setLayoutParams(new ImageSwitcher.LayoutParams(
                LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
        return i;
    }

    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;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView i = new ImageView(mContext);
            i.setImageResource(mThumbIds[position]);
            i.setAdjustViewBounds(true);
            i.setLayoutParams(new Gallery.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
            i.setBackgroundResource(R.drawable.ic_launcher);
            return i;
        }

        private Context mContext;
    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position,
            long id) {
        is_switcher.setImageResource(mImageIds[position]);
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
    }

}

java

3. 图片

时间: 12-23

Android -- ImageSwitch和Gallery 混合使用的相关文章

Android ImageSwitcher和Gallery的使用

前几天,听说室友的老师要求他们做一个图片效果.其效果如下图所示(可左右滑动切换图片): 我当时晃眼一看,第一感觉好高级的样子.我还没做过这种效果呢,但室友说他们同学已经有人做出来了,我觉得既然有人做出来了,那么我也应该做出来,于是上个星期五的时候在教室研究了一下午,最后在网上找到了两个Demo都与这个效果类似但又不完全一样,果断下载下来研究研究,结果才发现其实这个效果并没有你想的那么难. 废话不多说,上代码: main.xml:(其实就是两个控件的使用ImageSwitcher和Gallery)

Android学习之-----Gallery

在Android中,画廊控件Gallery用来显示图片列表,可以用手指直接拖动图片左右移动.Gallery只能水平显示一行,且Gallery列表中的图片会根据不同的拖动情况向左或向右移动,直到显示到最后一个图片为止 1.XML布局 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tool

Android中实现Gallery 点击放大

图片放大的思路: 第一.可以通过Matrix对象来变换图像,在选择的时候放大,在失去焦点的时候,缩小到原来的大小. double scale = 1.2;int width = bm.getWidth();int height = bm.getHeight();Log.i("size:", width+"");float scaleWidth = (float)(scale*width);float scaleHeight = (float)(scale*heigh

Android基础TOP6_2:Gallery +Image完成画廊

Activity: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5

android之路Gallery 画廊

Gallery是一个内部元素能够水平滚动,而且能够把当前选择的子元素定位在它中心的布局组件. 我们还是直接看看样例的执行效果. 1.新疆项目HelloGallery 2.把须要展示的图片放入res/drawable文件夹.woman01.jpg.woman02.jpg,woman03.jpg 3.res/layout/activity_main.xml文件的内容例如以下: <FrameLayout xmlns:android="http://schemas.android.com/apk/

Android源代码之Gallery专题研究(1)

前言 时光飞逝,从事Android系统开发已经两年了,总想写点什么来安慰自己.思考了非常久总是无法下笔,认为没什么好写的.如今最终决定写一些符合大多数人需求的东西,想必使用过Android手机的人们一定对"图库"(下面简称Gallery)这个应用非常熟悉.在Android市场里面有各种关于图库的应用,他们的最初原型事实上就是Android系统原生"图库",仅仅是做了不同的差异化而已(UI差异化).在研究Gallery源代码之前,我们须要对设计模式有一定的了解,依据自

Android源代码之Gallery专题研究(2)

引言 上一篇文章已经解说了数据载入过程,接下来我们来看一看数据载入后的处理过程.依照正常的思维逻辑.当数据载入之后,接下来就应该考虑数据的显示逻辑. MVC显示逻辑 大家可能对J2EE的MVC架构比較熟悉,Gallery2和MVC有什么关系呢,简直是瞎扯???首先,我们先回顾一下软件设计思想以及设计原则(详细请參考http://blog.csdn.net/cdl2008sky/article/details/6364396),简单的概括就是 紧内聚.松耦合.分层.最后再来解释一下MVC思想.MV

android实现3D Gallery 轮播效果,触摸时停止轮播

1.轮播控件涉及到的两个类 CarouselViewPager.java public class CarouselViewPager extends ViewPager { @IntDef({RESUME, PAUSE, DESTROY}) @Retention(RetentionPolicy.SOURCE) public @interface LifeCycle { } public static final int RESUME = 0; public static final int P

Android UI设计——Gallery控件

?Gallery Gallery完结的功用是将闪现的内容支配滑动.举例来说,有时我们下载一个APP运用的时分,会在运用商场中查看他的特性和界面,我们查看的内容通过支配滑动的方法来展示,这正本即是以Gallery控件来完结的. Gallery的完结也需求运用Adapter.首先我们来看一下Gallery的几个常用特色: spacing特色:支配两个Item脱离多少距离: unselectAlpha特色:设置透明度:当在基地的Item获取到焦点时,将不会闪现闪现透明度的特色. Gallery的监听通