Android入门之Gallery(纯java)

     

    

1、GalleryTest.java

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.*;
import android.widget.AdapterView.OnItemSelectedListener;

public class GalleryTest extends Activity {
	
	private LinearLayout mainView = null; 	// 相对布局
	private Gallery gallery = null; 		// gallery
	private TextView tv=null;				//文本
	
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mainView_init();
		setContentView(mainView);
	}

	/*mainView初始化*/
	void mainView_init() {
		mainView = new LinearLayout(this);
		LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(-1, -1);
		mainView.setLayoutParams(lp);
		mainView.setOrientation(LinearLayout.VERTICAL);
		tv_init();
		gallery_init();
		mainView.addView(gallery);
		mainView.addView(tv);
	}

	/*tv初始化*/
	void tv_init(){
		tv=new TextView(this);
		LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(-1,-2);
		tv.setLayoutParams(lp);
		tv.setTextSize(30);
		tv.setText("这里显示图片选中响应");
		tv.setGravity(Gravity.CENTER_HORIZONTAL);
	}
	
	/*gallery初始化*/
	void gallery_init() {
		gallery = new Gallery(this);
		LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(-1, -2);
		// lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
		gallery.setLayoutParams(lp);
		gallery.setSpacing(15);// 空隙
		//
		ImageAdapter ia = new ImageAdapter(this);
		gallery.setAdapter(ia);
		//
		OnItemSelectedListener oisl = new OnItemSelectedListener() {
			public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
				tv.setText("图片"+(arg2+1)+"被选中");
			}
			public void onNothingSelected(AdapterView<?> arg0) {
				tv.setText("未选中任何图片");
			}
		};
		gallery.setOnItemSelectedListener(oisl);
	}
	
}

 

2、ImageAdapter.java

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
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 context;
	//图片源数组
	private Integer[] imageInteger = { R.drawable.icon,R.drawable.p1,R.drawable.p2, R.drawable.p3,R.drawable.p4};

	public ImageAdapter(Context c) {
		context = c;
	}

	public int getCount() {
		return imageInteger.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 imageView = new ImageView(context);
		imageView.setLayoutParams(new Gallery.LayoutParams(-2,120));
		/*图片缩放处理,如果先设置了iamgeView的大小,则必须注意加载的图片大小不能超出,否则无法显示*/
		Bitmap bm = BitmapFactory.decodeResource(context.getResources(),imageInteger[position]);
		//原始尺寸
		int width=bm.getWidth();
		int height=bm.getHeight();
		//缩放比例
		if(height>120){
			float scaleHeight=((float)120)/height;
			float scaleWidth=scaleHeight;
			// 创建操作图片用的matrix对象    
	        Matrix matrix = new Matrix();   
	        // 缩放图片动作    
	        matrix.postScale(scaleWidth, scaleHeight);   
	        //旋转图片 动作    
	        //matrix.postRotate(45);   
	        // 创建新的图片    
	        Bitmap resizedBitmap = Bitmap.createBitmap(bm,0,0,width, height,matrix,true);   
			imageView.setImageBitmap(resizedBitmap);
		}else{
			imageView.setImageBitmap(bm);
		}
		imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
		return imageView;
	}

}

package e gallery; import android app Activity; import android os Bundle; import android view LayoutInflater; import android view View; import android view ViewGroup; import android view ViewGroup MarginLayoutParams; import android widget AdapterView; import android widget AdapterView OnItemSelectedListener; import android widget BaseAdapter; import android widget Gallery; import android widget ImageView; import e gallery R; public class MainActivity extends Activity implements OnItemSelectedListener { Gallery gallery; ImageView main imageView; ImageView picture imageView; Gesture+ gesture; int[] ids1 { R drawable b R drawable c R drawable d R drawable f R drawable g }; @Override protected void onCreate Bundle savedInstanceState { super onCreate savedInstanceState ; setContentView R layout main ; main imageView ImageView findViewById R id main imageView ; gallery Gallery findViewById R id gallery ; gallery setOnItemSelectedListener this ; 怎么设置从中间开始 gallery setAdapter new MyAdapter ; } class MyAdapter extends BaseAdapter{ @Override public int getCount { return Integer MAX VALUE; } @Override public Object getItem int position { return null; } @Override public long getItemId int position { return 0; } @Override public View getView int position View convertView ViewGroup parent { LayoutInflater layoutInflater LayoutInflater from MainActivity this ; convertView layoutInflater inflate R layout picture null ; picture imageView ImageView convertView findViewById R id picture imageView ; picture imageView setImageResource ids1[position % 5] ; return convertView; } } @Override public void onItemSelected AdapterView< > parent View view int position long id { main imageView setImageResource ids1[position % 5] ; } @Override public void onNothingSelected AdapterView< > parent { } }">package e gallery; import android app Activity; import android os Bundle; import android view LayoutInflater; import android view View; import android view ViewGroup; import android view ViewGroup MarginLayoutParams; import android widget AdapterView; import android widget AdapterView OnItemSelecte [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值