看了一些别人的代码,然后自己修改了一下,现在把代码贴出来

首先是界面布局文件

android:spacing="50pt",设置图片之间间距

<?xml version="1.0" encoding="utf-8"?>        

程序代码如下

PhotoActivity代码

package com.example.photo;import java.io.File;import java.lang.reflect.Field;  import java.util.ArrayList;  import java.util.List;import com.example.flight_control_001.R;  import android.app.Activity;  import android.content.Context;  import android.graphics.Bitmap;  import android.graphics.BitmapFactory;  import android.os.Bundle;  import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Gallery;import android.widget.SpinnerAdapter;  public class PhotoActivity extends Activity { private static final String PIC_PATH = "/mnt/sdcard/Flight photo/";    @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_photo);          Gallery g=(Gallery)findViewById(R.id.gallery);                //添加一个ImageAdapter并设置给Gallery对象        g.setAdapter( new ImageAdapter(this,getSD()));                //设置一个itemclickListener事件        g.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stub}});    }private List getSD() {// TODO Auto-generated method stub//设置目前所在路径List it=new ArrayList();File f=new File(PIC_PATH);File[] files=f.listFiles();//将所有文件添加到ArrayList中for(int i=0;i

新建一个ImageAdapter类

package com.example.photo;import java.util.List;import com.example.flight_control_001.R;import android.content.Context;import android.content.res.TypedArray;import android.database.DataSetObserver;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.Gallery.LayoutParams;import android.widget.ImageView;public class ImageAdapter extends BaseAdapter {//声明变量int mGalleryItemBackgroud;private Context mContext;private List lis;//ImageAdapter的构造器public ImageAdapter(Context c, List li){mContext=c;lis=li;/*//使用在res/values/attrs.xml中的定义的Gallery属性TypedArray a=ImageAdapter.this.obtainStyledAttributes(R.styleable.Gallery);//取得Gallery属性的Index idmGalleryItemBackgroud=a.getResourceId(R.styleable.Gallery_android_galleryItemBackgroud,0);//让对象的styleable属性能够反复使用a.recycle();*/}//重写的方法getCount,返回图片数目@Overridepublic int getCount() {// TODO Auto-generated method stubreturn lis.size();}//重写的方法getItem,返回position@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}//重写的方法getItemId,返回position@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}//重写的方法getView,返回一View对象@SuppressWarnings("deprecation")@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stub//产生ImageView对象ImageView i=new ImageView(mContext);//设置图片给imageView对象Bitmap bm=BitmapFactory.decodeFile(lis.get(position).toString());i.setImageBitmap(bm);//重写设置图片的宽、高i.setScaleType(ImageView.ScaleType.FIT_CENTER);//重新设置layout的宽、高i.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));//使Gallery图片自适应屏幕分辨率,以免图片bound超出屏幕范围  i.setAdjustViewBounds(true); //设置Gallery背景图i.setBackgroundResource(mGalleryItemBackgroud);//返回imageView对象return i;}}

这就完成了

   


更多相关文章

  1. 【笔记】Retrofit的使用以及原理
  2. Android(安卓)WebView JS不能调用Java对象的问题
  3. android利用BitMap获得图片的像素数据
  4. Android系统移植与调试之------->如何修改开机动画的两种方式剖
  5. Android(安卓)使用intent对Bitmap的处理(拍照、裁剪、从图库选择
  6. Android图片内存优化的几点心得
  7. ConnectivityService分析
  8. Android(安卓)实现头像上传功能
  9. Android(安卓)Activity间传递数据

随机推荐

  1. Android使用Fragment来实现TabHost的功能
  2. Android(安卓)代码风格规范
  3. 【android之ScrollView滚动视图】
  4. 惹的祸
  5. Android处理按钮重复点击事件
  6. Android学习整理- 9- 实时更新UI-Handler
  7. Android(安卓)架构
  8. android编译源码+在源码中build工程方法(
  9. 如何利用AndroidStudio提升开发效率
  10. Android桌面组件App Widget完整案例