package com.test.gallery;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Display;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Gallery.LayoutParams;
public class testgallery extends Activity implements
AdapterView.OnItemSelectedListener{
ImageView imageview[] = new ImageView[7];
TextView tv;
public static int SCREEN_WIDTH;
public static int SCREEN_HEIGHT;
private static Integer white = R.drawable.white;
private static Integer gray = R.drawable.gray;
private static int current = 0;
private static Integer[] STR = {R.string.str1, R.string.str2, R.string.str3, R.string.str4,
R.string.str5, R.string.str6, R.string.str7};
private static Bitmap[] bm = new Bitmap[7];
private AsyncImageLoader asyncImageLoader = new AsyncImageLoader();
private Gallery g;
//public static int white = R.drawable.white;
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//不显示程序的标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
//不显示系统的标题栏
getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,WindowManager.LayoutParams. FLAG_FULLSCREEN);
setContentView(R.layout.main);
WindowManager windowmanager = getWindowManager();
Display display = windowmanager.getDefaultDisplay();
SCREEN_WIDTH = display.getWidth();
SCREEN_HEIGHT = display.getHeight();
//引用gallery组件
g = (Gallery) findViewById(R.id.gallery);
//在此下面定制适配器
g.setAdapter(new ImageAdapter(this));
//设置画廊中的图片边距
g.setSpacing(2);
g.setOnItemSelectedListener(this);
imageview[0] = (ImageView) findViewById(R.id.imageView1);
imageview[1] = (ImageView) findViewById(R.id.imageView2);
imageview[2] = (ImageView) findViewById(R.id.imageView3);
imageview[3] = (ImageView) findViewById(R.id.imageView4);
imageview[4] = (ImageView) findViewById(R.id.imageView5);
imageview[5] = (ImageView) findViewById(R.id.imageView6);
imageview[6] = (ImageView) findViewById(R.id.imageView7);
tv = (TextView) findViewById(R.id.text);
//设置初始焦点位置
//g.setSelection(4);
//g.setGravity(2);//0无效果
/*小图标组件*/
// ImageAdapter1 ia = new ImageAdapter1(this);
// Gallery g1 = (Gallery) findViewById(R.id.gallery1);
// g1.setAdapter(ia);
// g1.setSpacing(1);
// g1.setSelection(4);
//设置一个itemclicklistener,
g.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView parent, View v, int position,
long id) {
//注释后 未显示短按组件
Toast.makeText(testgallery.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
//在gallery里,我们也可以通过longpressed items(及长按)显示一个上下文菜单
//注释后 未注册长按组件。
//registerForContextMenu(g);
}
//环境上下文创建时
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){
//注释掉后,长按无显示(无常见显示的组件)
//menu.add("Testing");
}
//这里是长按组件再点击的方法。
// public boolean onContextItemSelected(MenuItem item){
// AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
// Toast.makeText(this, "Longpress: " + info.position, Toast.LENGTH_SHORT).show();
// return true;
// }
public class ImageAdapter extends BaseAdapter{
int mGalleryItemBackground;
private Context mContext;
public ImageAdapter(Context c){
mContext = c;
}
public int getCount() {
return imageurl.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
//i.setPadding(10, 0, 5, 0); //设置图片边距
//i.setImageResource(mImageIds[position]);
/*异步进行加载*/
// new Thread(){
// public void run(){
// URL url;
// try {
// if(bm[position] == null){
// url = new URL(imageurl[position]);
// bm[position] = BitmapFactory.decodeStream(url.openStream());
// }
// } catch (MalformedURLException e) {
// e.printStackTrace();
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
// }.start();
//
// if(bm[position] != null){
// i.setImageBitmap(bm[position]);
// }else{
// i.setImageResource(mImageIds[0]);
// }
i.setTag(imageurl[position]);
Drawable cachedImage = asyncImageLoader.loadDrawable(imageurl[position], new com.test.gallery.AsyncImageLoader.ImageCallback() {
public void imageLoaded(Drawable imageDrawable, String url) {
ImageView imageViewByTag = (ImageView) g.findViewWithTag(url);
if (imageViewByTag != null) {
imageViewByTag.setImageDrawable(imageDrawable);
}
}
});
if (cachedImage == null) {
i.setImageResource(mImageIds[0]);
Log.e("Adapter", "null");
}else{
i.setImageDrawable(cachedImage);
}
i.setScaleType(ImageView.ScaleType.CENTER_CROP);//FIT_XY centerCrop
//i.setLayoutParams(new Gallery.LayoutParams(20, 20));//136 88 //图片的宽高
i.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
//设置Gallery组件的背景风格
i.setBackgroundResource(mGalleryItemBackground);
return i;
}
private String[] imageurl = {
"http://pic0.qiyipic.com/common/20110214/768e29bae49148708c8341f8781c2a0a.jpg",
"http://pic3.qiyipic.com/common/20110214/d5c22c49cce04f3d827961f9f615e9d1.jpg",
"http://sports.tom.com/uldf/2011/0213/goujianzhen/fpx.jpg",
"http://www.qiyipic.com/lvyou/fix/csmlga.jpg",
"http://www.qiyipic.com/lvyou/fix/sqxy.jpg",
"http://www.qiyipic.com/lvyou/fix/astrj.jpg",
"http://www.qiyipic.com/thumb/20110223/v73694.jpg"
};
private Integer[] mImageIds = {
R.drawable.gallery_photo_1,
R.drawable.gallery_photo_2,
R.drawable.gallery_photo_3,
R.drawable.gallery_photo_4,
R.drawable.gallery_photo_5,
R.drawable.gallery_photo_6,
R.drawable.gallery_photo_7
};
}
/*
public class ImageAdapter1 extends BaseAdapter{
int mGalleryItemBackground;
private Context mContext;
public ImageAdapter1(Context c){
mContext = c;
}
public int getCount() {
return mImIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
i.setImageResource(mImIds[position]);
i.setScaleType(ImageView.ScaleType.CENTER_CROP);//FIT_XY centerCrop
//设置Gallery组件的背景风格
i.setBackgroundResource(mGalleryItemBac