• 画廊视图Gallery


    幻灯片图片浏览器

    1.布局

     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:orientation="vertical"
     6     tools:context=".AndroidGalleryActivity" >
     7 
     8     <ImageSwitcher
     9         android:id="@+id/imgswi"
    10         android:layout_width="320dp"
    11         android:layout_height="320dp" />
    12 
    13     <Gallery
    14         android:id="@+id/gallery"
    15         android:layout_width="match_parent"
    16         android:layout_height="wrap_content"
    17         android:layout_marginTop="25dp"
    18         android:unselectedAlpha="0.6"
    19         android:spacing="3pt"
    20          />
    21 
    22 </LinearLayout>

    2.逻辑控制

      1 package com.example.androidgallery;
      2 
      3 import android.os.Bundle;
      4 import android.app.Activity;
      5 import android.content.res.TypedArray;
      6 import android.support.v4.view.ViewPager.LayoutParams;
      7 import android.view.Menu;
      8 import android.view.View;
      9 import android.view.ViewGroup;
     10 import android.view.animation.AnimationUtils;
     11 import android.widget.AdapterView;
     12 import android.widget.AdapterView.OnItemSelectedListener;
     13 import android.widget.BaseAdapter;
     14 import android.widget.Gallery;
     15 import android.widget.ImageSwitcher;
     16 import android.widget.ImageView;
     17 import android.widget.ViewSwitcher.ViewFactory;
     18 
     19 public class AndroidGalleryActivity extends Activity {
     20 
     21     int[] imageIds=new int[]{
     22     R.drawable.mm,
     23     R.drawable .mm2,
     24     R.drawable.mm3,
     25     R.drawable.mm4
     26     } ;
     27     
     28     @Override
     29     protected void onCreate(Bundle savedInstanceState) {
     30         super.onCreate(savedInstanceState);
     31         setContentView(R.layout.activity_android_gallery);
     32         final Gallery gallery=(Gallery)this.findViewById(R.id.gallery);
     33         final ImageSwitcher imgswi=(ImageSwitcher)this.findViewById(R.id.imgswi);
     34         //设置ViewFactory对象
     35         imgswi.setFactory(new ViewFactory() {
     36             
     37             @Override
     38             public View makeView() {
     39                 ImageView imageView=new ImageView(AndroidGalleryActivity.this);
     40                 imageView.setBackgroundColor(0xff0000);
     41                 imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
     42                 imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
     43                 return imageView;
     44             }
     45         });
     46         //设置图片更换动画效果
     47         imgswi.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
     48         imgswi.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));
     49         //创建一个BaseAdapter对象,负责提供Gallery显示每张图片
     50         BaseAdapter adapter=new BaseAdapter() {
     51             
     52             @Override
     53             public View getView(int position, View convertview, ViewGroup parent) {
     54                 //创建一个ImageView
     55                 ImageView imageView=new ImageView(AndroidGalleryActivity.this);
     56                 imageView.setImageResource(imageIds[position%imageIds.length]);
     57                 //设置ImageView缩放类型
     58                 imageView.setScaleType(ImageView.ScaleType.FIT_XY);
     59                 imageView.setLayoutParams(new Gallery.LayoutParams(75,100));
     60                 /*TypedArray typeArray=obtainStyledAttributes(R.styleable.Gallery);
     61                 imageView.setBackgroundResource(TypedArray)*/
     62                 return imageView;
     63             }
     64             
     65             @Override
     66             public long getItemId(int arg0) {
     67                 // TODO Auto-generated method stub
     68                 return arg0;
     69             }
     70             
     71             @Override
     72             public Object getItem(int arg0) {
     73                 // TODO Auto-generated method stub
     74                 return arg0;
     75             }
     76             
     77             @Override
     78             public int getCount() {
     79                 // TODO Auto-generated method stub
     80                 return imageIds.length;
     81             }
     82         };
     83         
     84         gallery.setAdapter(adapter);
     85         gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
     86 
     87             @Override
     88             public void onItemSelected(AdapterView<?> parent, View view,
     89                     int position, long id) {
     90                 // TODO Auto-generated method stub
     91                 imgswi.setImageResource(imageIds[position%imageIds.length]);
     92             }
     93 
     94             @Override
     95             public void onNothingSelected(AdapterView<?> parent) {
     96                 // TODO Auto-generated method stub
     97                 
     98             }
     99             
    100         });
    101     }
    102 
    103     @Override
    104     public boolean onCreateOptionsMenu(Menu menu) {
    105         // Inflate the menu; this adds items to the action bar if it is present.
    106         getMenuInflater().inflate(R.menu.activity_android_gallery, menu);
    107         return true;
    108     }
    109 
    110 }

    作者:欢醉
    公众号【一个码农的日常】 技术群:319931204 1号群: 437802986 2号群: 340250479
    出处:http://zhangs1986.cnblogs.com/
    码云:https://gitee.com/huanzui
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    Top
  • 相关阅读:
    关于oracle的相关基础语句
    devexpress中如何给TabPage控件的Tab定义背景色
    asp.net中当点击按钮时出现grid编辑弹框
    DEV中dx:ASPxPopupControl 控件的使用(在窗口关闭或隐藏时,清楚文本框中的内容)
    aspx中如何绑定llistbox数据列表
    asp.net中选择数字时,另外的数字同时发生变化(适用dev控件)
    js中substring和substr的用法(文章来自bobo327的博客园)
    QT中常用控键
    sqlite常用语句
    计算机视觉-基于内容的图像检索
  • 原文地址:https://www.cnblogs.com/zhangs1986/p/2939902.html
Copyright © 2020-2023  润新知