您的位置:首页 > 移动开发 > Android开发

Android基础教程之-----访Iphone 拖动相片特效Gallery的简单应用.

2012-11-05 10:14 561 查看
Step 1:准备图片素材.

icon2,icon3,icon4,icon5,icon6五张图片导入res/drawable里加上icon.png本身一共有6张图片.

Step 2:新建Android工程,命名为GalleryDemo.

Step 3:设计UI,修改main.xml代码如下:

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:background="@android:color/white"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView

android:id="@+id/myTextView01"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello_world"

android:gravity="center_vertical|center_horizontal"/>

<Gallery

android:id="@+id/myGallery1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="bottom"/>

</LinearLayout>

Step 4:设计主程序类GalleryDemo.java代码如下:

package com.example.gallerydemo;

import android.os.Bundle;

import android.app.Activity;

import com.example.gallerydemo.R.drawable;

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 GalleryDemo extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

((Gallery)findViewById(R.id.myGallery1)).setAdapter(new ImageAdapter(this));

}

public class ImageAdapter extends BaseAdapter{

/*类成员myContext为Context父类*/

private Context myContext;

/*使用res/drawable-hdpi图片作为图片来源*/

private int[] myImagesIds = {drawable.icon1,drawable.icon2,drawable.icon3,

drawable.icon4,drawable.icon5,drawable.ic_launcher};

/*构造器只有一个参数,即要存储的Context*/

public ImageAdapter(Context c){

this.myContext = c;

}

/*返回所有已定义的图片总数量*/

public int getCount(){

return this.myImagesIds.length;

}

/*利用getIten=m方法,取得目前容器中图像的数组ID*/

public Object getItem(int position){

return position;

}

/**/

public long getItemId(int position){

return position;

}

/*取得目前欲显示的图像View,传入数组ID值使之读取与成像 */

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

/*创建一个ImageView对象*/

ImageView i = new ImageView(this.myContext);

i.setImageResource(this.myImagesIds[position]);

i.setScaleType(ImageView.ScaleType.FIT_XY);

/*设置这个ImageView对象的宽高,单位为dip*/

i.setLayoutParams(new Gallery.LayoutParams(240,240));

return i;

}

/*依据距离中央的位移量利用getScale返回views的大小(0.0f to 1.0f)*/

public float getScale(boolean focused,int offset){

/*Formula:1/(2^offset)*/

return Math.max(0,1.0f/(float)Math.pow(2,Math.abs(offset)));

}

}

}

Step 5:run it,效果如下图:





注明:该代码基本参照Android SDK开发范例代码大全.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐