android开发相册代码,Android开发之简单的电子相册实现

电子相册的效果图和结构图:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

图片资源的文件:

package com.example.electronicalbum;

public interface ImageResource {

//用一个Integer数组保存图像资源

Integer[] dImageID={

R.drawable.a,

R.drawable.b,

R.drawable.c,

R.drawable.d,

R.drawable.e,

R.drawable.f,

};

}

布局的文件:

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/bj"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content">

android:layout_height="fill_parent"

android:layout_width="fill_parent">

提到的string.xml 文件:

电子相册

Settings

最主要的代码和注释:希望对大家有帮助:

package com.example.electronicalbum;

import android.os.Bundle;

import android.app.Activity;

import android.content.Context;

import android.content.res.TypedArray;

import android.view.Menu;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.Gallery;

import android.widget.ImageView;

public class MainActivity extends Activity {

//用来显示单个图像

private ImageView imageOne;

//用来显示所有的图像

private ImageView imageAll;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

imageOne = (ImageView) findViewById(R.id.imageView);

//新建一个Gallery类,这是是实现拖动效果的关键

//Gallery is 一个用来水平卷动显示对象的视图

Gallery gallery = (Gallery) findViewById(R.id.gallery);

gallery.setAdapter(new ImageAdapter(this));

}

//实现ImageResource接口获得自己创建的图像资源

class ImageAdapter extends BaseAdapter implements ImageResource{

//每一个gallery中图像的背景资源

private int galleryItemBackground;

private Context context;

public ImageAdapter(Context context) {

this.context = context;

//这里实现的功能上就是上半部分每个图像那个背景框

// 对应的xml文件就是attr.xml

TypedArray a = obtainStyledAttributes(R.styleable.Gallery1);

galleryItemBackground = a.getResourceId( R.styleable.Gallery1_android_galleryItemBackground, 0);

a.recycle();

}

@Override

public int getCount() {

return dImageID.length;

}

@Override

public Object getItem(int position) {

return position;

}

@Override

public long getItemId(int position) {

//将此索引的图像设为imageOne显示

imageOne.setImageResource(ImageAdapter.dImageID[position]);

imageOne.setScaleType(ImageView.ScaleType.FIT_CENTER);

return position;

}

//这个方法返回的ImageView就是实现拖动效果的图像

@Override

public View getView(int position, View convertView, ViewGroup parent) {

imageAll = new ImageView(context);

//设置图像源

imageAll.setImageResource(dImageID[position]);

//设置视图为120*120

imageAll.setLayoutParams(new Gallery.LayoutParams(125,125));

//设置图像相对于视图的比例,FIT_XY表示充满X和Y轴

imageAll.setScaleType(ImageView.ScaleType.FIT_XY);

//设置imageAll中每一个Item的背景资源

imageAll.setBackgroundResource(galleryItemBackground);

return imageAll;

}

}

@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;

}

}

请大家伙多多指教:

请关注:ailiandeziwei

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值