Android UI设计——Gallery控件

Gallery控件详解
本文详细介绍Gallery控件的使用方法及其实现左右滑动效果的过程。文章通过实例展示了如何利用Adapter填充数据并设置监听器来获取居中视图。

  Gallery实现的功能是将显示的内容左右滑动。举例来说,有时我们下载一个APP应用的时候,会在应用市场中查看他的特性和界面,我们查看的内容通过左右滑动的方式来展示,这其实就是以Gallery控件来实现的。

Gallery的实现也需要使用Adapter。首先我们来看一下Gallery的几个常用属性:

  • spacing属性:左右两个Item离开多少距离;
  • unselectAlpha属性:设置透明度;当在中间的Item获取到焦点时,将不会显示显示透明度的属性。

Gallery的监听通过onItemSelectListener 来实现,通过这个监听可以获取到在Gallery显示过程中居中的View。

Activity内容:(Adapter的使用不再详细描述)

public class MainActivity extends Activity {
    private Gallery mGalleryView;
    private List<Fruit> mFruits;
    private LayoutInflater mInflater;
    private MyGalleryAdapter mMyGalleryAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mGalleryView = (Gallery) findViewById(R.id.galleray_fruit);
        mInflater = getLayoutInflater();
        //数据初始化。
        initData();
        mMyGalleryAdapter = new MyGalleryAdapter(mFruits,mInflater);
        mGalleryView.setAdapter(mMyGalleryAdapter);
        //监听事件
        mGalleryView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
            //将获取到焦点的水果,也就是居中的水果显示出来。
                Log.d("data", ""+mFruits.get(position).getmFruitName());
            }
            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
            }
        });
    }

    private void initData() {
        mFruits =new ArrayList<Fruit>();
        for (int i=0; i<10;i++){
            Fruit apple = new Fruit(R.mipmap.apple,"苹果");
            mFruits.add(apple);
            Fruit banana = new Fruit(R.mipmap.banana,"香蕉");
            mFruits.add(banana);
            Fruit grape = new Fruit(R.mipmap.grape,"葡萄");
            mFruits.add(grape);
            Fruit watermelon = new Fruit(R.mipmap.watermelon,"西瓜");
            mFruits.add(watermelon);
            Fruit pineapple = new Fruit(R.mipmap.pineapple,"菠萝");
            mFruits.add(pineapple);
        }
    }
}

这里写图片描述

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小_爽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值