zoukankan      html  css  js  c++  java
  • ANDROID笔记:Gallery的简单使用

     1 package com.example.adaptertest.gallery;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.os.Handler;
     6 import android.os.Handler.Callback;
     7 import android.os.Message;
     8 import android.view.View;
     9 import android.widget.AdapterView;
    10 import android.widget.AdapterView.OnItemClickListener;
    11 import android.widget.AdapterView.OnItemSelectedListener;
    12 import android.widget.Gallery;
    13 import android.widget.Toast;
    14 
    15 import com.example.adaptertest.R;
    16 
    17 @SuppressWarnings("deprecation")
    18 public class GalleryActivity extends Activity {
    19     int[] images = { R.drawable.a1, R.drawable.a2, R.drawable.a3, R.drawable.a4 };
    20     // 可以用AdapterViewFlipper替换
    21     Gallery gallery;
    22     int counter = 0;
    23 
    24     @Override
    25     protected void onCreate(Bundle savedInstanceState) {
    26         super.onCreate(savedInstanceState);
    27         setContentView(R.layout.gallerytest);
    28 
    29         gallery = (Gallery) findViewById(R.id.gallery_id);
    30         gallery.setAdapter(new GalleryAdapter(GalleryActivity.this, images));
    31         handler.sendEmptyMessageDelayed(1, 5000);
    32         // 得到gallery选中的item的ID
    33         // gallery.getSelectedItemId();
    34         gallery.setOnItemClickListener(new OnItemClickListener() {
    35 
    36             @Override
    37             public void onItemClick(AdapterView<?> parent, View view,
    38                     int position, long id) {
    39                 Toast.makeText(GalleryActivity.this, position + "",
    40                         Toast.LENGTH_LONG).show();
    41                 // 移除消息队列(点击图片事停止图片自动滚动)
    42                 handler.removeMessages(1);
    43             }
    44         });
    45         // 最前端的图片
    46         gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
    47 
    48             @Override
    49             public void onItemSelected(AdapterView<?> parent, View view,
    50                     int position, long id) {
    51                 Toast.makeText(GalleryActivity.this, position + "",
    52                         Toast.LENGTH_LONG).show();
    53 
    54             }
    55 
    56             @Override
    57             public void onNothingSelected(AdapterView<?> parent) {
    58                 Toast.makeText(GalleryActivity.this, "nothing",
    59                         Toast.LENGTH_LONG).show();
    60             }
    61         });
    62 
    63     }
    64 
    65     Handler handler = new Handler(new Callback() {
    66 
    67         @Override
    68         public boolean handleMessage(Message msg) {
    69             if (msg.what == 1) {
    70                 counter++;
    71                 if (counter >= images.length) {
    72                     counter = 0;
    73                 }
    74                 // 更换图片
    75                 gallery.setSelection(counter);
    76                 // 继续发送消息到队列(类似递归)
    77                 handler.sendEmptyMessageDelayed(1, 5000);
    78             }
    79             return true;
    80         }
    81     });
    82 }
    package com.example.adaptertest.gallery;
    
    import android.content.Context;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.Gallery;
    import android.widget.ImageView;
    import android.widget.ImageView.ScaleType;
    
    public class GalleryAdapter extends BaseAdapter {
        private int[] images;
        private Context context;
    
        public GalleryAdapter(Context convertView, int[] images) {
            this.context = convertView;
            this.images = images;
    
        }
    
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return images.length;
        }
    
        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return images[position];
        }
    
        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }
    
        @SuppressWarnings("deprecation")
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            ImageView imageView = new ImageView(context);
            imageView.setImageResource(images[position]);
            imageView.setScaleType(ScaleType.FIT_XY);
            imageView.setLayoutParams(new Gallery.LayoutParams(500, 500));
            return imageView;
        }
    
    }
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <Gallery
     8         android:id="@+id/gallery_id"
     9         android:layout_width="wrap_content"
    10         android:layout_height="wrap_content"
    11         android:spacing="-20px"
    12         android:unselectedAlpha="150" />
    13 
    14 </LinearLayout>
    15 <!-- android:unselectedAlpha="150" 未被选择的图片的透明度 -->
    16 <!-- android:spacing="-20px" 间隔 -->
  • 相关阅读:
    js 获取和设置css3 属性值的实现方法
    API的自动化测试
    删除html标签或标签属性以及样式
    JS+CSS实现数字滚动
    video元素和audio元素相关事件
    SDT v0.0.1 上线
    safari浏览器fixed后,被软键盘遮盖的问题—【未解决】
    js中DOM事件探究
    使用Web存储API存取本地数据
    剑指offer(Java版)第七题:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead, 分别完成在队列尾部插入结点和在队列头部删除结点的功能。
  • 原文地址:https://www.cnblogs.com/afluy/p/3375707.html
Copyright © 2011-2022 走看看