Gallery与ImageSwitcher结合的简单实现
2013-04-17 20:28
344 查看
Gallery控件,即Android中的图片浏览控件。就像一个画廊一样,把图片存储起来,以便浏览查看。
当点击Gallery中的一张图片时,会在ImageSwitcher中显示该图片。首先要做到的时布局设计,其次建立MainActivity.java文件,第一步先获取组件。第二步对Gallery进行数据绑定,创建适配器,绑定数据源和适配器。
然后新建一个ImageAdapter.java文件,继承BaseAdapter抽象类。编写getView()方法。
其中context主要是连接上下文,在创建ImageView时要传一个context。
spacing是图片之间的内间隙。在最外层背景中引用系统样式:<android:backgroud"?android:galleryItemBackground">。
还有一种方法时给每张图片加边框:
1.在values下新建一个item.xml文件,内容如下:
2.粗体部分为关键代码:
![](http://img.my.csdn.net/uploads/201304/17/1366199923_2115.png)
ImageAdapter.java
当点击Gallery中的一张图片时,会在ImageSwitcher中显示该图片。首先要做到的时布局设计,其次建立MainActivity.java文件,第一步先获取组件。第二步对Gallery进行数据绑定,创建适配器,绑定数据源和适配器。
然后新建一个ImageAdapter.java文件,继承BaseAdapter抽象类。编写getView()方法。
其中context主要是连接上下文,在创建ImageView时要传一个context。
spacing是图片之间的内间隙。在最外层背景中引用系统样式:<android:backgroud"?android:galleryItemBackground">。
还有一种方法时给每张图片加边框:
1.在values下新建一个item.xml文件,内容如下:
<?xml version="1.0"encoding="utf-8" ?> <resources> <declare-styleablename="HelloGallery"> <attrname="android:galleryItemBackground" /> </declare-styleable> </resources>
2.粗体部分为关键代码:
private class ImageAdapter extends BaseAdapter { private Context context; int mGalleryItemBackground; public ImageAdapter(Context context) { this.context = context; TypedArray a = obtainStyledAttributes(R.styleable.HelloGallery); mGalleryItemBackground = a.getResourceId( R.styleable.HelloGallery_android_galleryItemBackground, 0); a.recycle(); } @Override public int getCount() { // TODO Auto-generated method stub return imagesSmall.length; } @Override public Object getItem(int position) { return imagesSmall[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView = new ImageView( ImageSwitcherGalleryActivity.this); imageView.setImageResource(imagesSmall[position]); // imageView.setAdjustViewBounds(true); imageView.setBackgroundResource(mGalleryItemBackground); return imageView; } }
页面效果显示:
当点击Gallery中的图片时,会在下面的ImageSwitcher中显示该图片。![](http://img.my.csdn.net/uploads/201304/17/1366199923_2115.png)
布局设计:
activity_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:spacing="5dp" //图片之间的内间隙 android:layout_marginTop="20dp" android:background="?android:galleryItemBackground" /*设置最外层背景框*//> <ImageSwitcher android:id="@+id/switcher" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/gallery"/> </RelativeLayout>
代码实现:
MainActivity.javaimport android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Gallery; import android.widget.ImageSwitcher; import android.widget.ImageView; import android.widget.ViewSwitcher.ViewFactory; public class MainActivity extends Activity { private Gallery gallery; private ImageSwitcher switcher; private int index=0; private Integer[] imagesID = { R.drawable.car00, R.drawable.car01, R.drawable.car02, R.drawable.car03, R.drawable.car04, R.drawable.car05, R.drawable.car06,R.drawable.car07,R.drawable.car08}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取组件 gallery=(Gallery) this.findViewById(R.id.gallery); switcher=(ImageSwitcher) this.findViewById(R.id.switcher); //设置ImageSwitcherD对象的数据源 switcher.setFactory(new ViewFactory() { @Override public View makeView() { // TODO Auto-generated method stub ImageView imageview=new ImageView(MainActivity.this); return imageview; } }); switcher.setImageResource(imagesID[index]); //对gallery进行数据绑定 gallery.setAdapter(new ImageAdapter(this)); gallery.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) { /*Toast.makeText(MainActivity.this, "你选择了"+(position+1)+"图片",Toast.LENGTH_SHORT ).show();*/ switcher.setImageResource(imagesID[position]); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
ImageAdapter.java
import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; public class ImageAdapter extends BaseAdapter { private Context mcontext; private Integer[] imageId = {R.drawable.car00, R.drawable.car01, R.drawable.car02, R.drawable.car03, R.drawable.car04, R.drawable.car05, R.drawable.car06,R.drawable.car07,R.drawable.car08}; public ImageAdapter(Context c){ mcontext=c; } @Override public int getCount() { // TODO Auto-generated method stub return imageId.length; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ImageView imageview=new ImageView(mcontext); imageview.setImageResource(imageId[position]); imageview.setLayoutParams(new Gallery.LayoutParams(120,120)); imageview.setScaleType(ImageView.ScaleType.FIT_CENTER); return imageview; } }
相关文章推荐
- Gallery和ImageSwitcher滑动切换照片简单demo实现
- (转载)Gallery 与ImageSwitcher的结合使用(ImageSwitcher中拖拽也实现图片的切换)
- Gallery + ImageSwitcher 实现简单的电子相册
- (简单图片浏览器)imageSwitcher与gallery结合应用
- Gallery和imageSwitcher结合使用浏览图片(简单图片浏览器)
- Android中ImageSwitcher结合Gallery展示SD卡中的资源图片
- ImageSwitcher gallery 实现图片展示
- Android之Gallery和ImageSwitcher结合的用法
- 使用ImageSwitcher+Graller实现简单的幻灯式图片浏览器
- gallery ,imageSwitcher 结合使用
- Android中使用GridView和ImageViewSwitcher实现电子相册简单功能
- android 用ImageSwitcher+Gallery实现图片浏览效果 分类: Android界面和组件 2014-07-01 18:41 131人阅读 评论(0) 收藏
- Android中ImageSwitcher结合Gallery展示SD卡中的资源图片
- Gallery 与ImageSwitcher的结合使用
- android 用ImageSwitcher+Gallery实现图片浏览效果
- 【Android 界面效果30】Android中ImageSwitcher结合Gallery展示SD卡中的资源图片
- Android中ImageSwitcher结合Gallery展示SD卡中的资源图片
- 【Android 界面效果30】Android中ImageSwitcher结合Gallery展示SD卡中的资源图片
- Android中ImageSwitcher结合Gallery展示SD卡中的资源图片
- Android UI, Gallery(过时), ImageSwitcher, 简单图片浏览工具