画廊视图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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
公众号【一个码农的日常】 技术群:319931204 1号群: 437802986 2号群: 340250479
出处:http://zhangs1986.cnblogs.com/
码云:https://gitee.com/huanzui
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。