用户界面(三)ImageView、ImageButton、Gallery

1. ImageView
1) XML中加入一个<ImageView>
2)  程序:
public class MyImageView extends Activity{
	 ImageView m_ImageView=null;
	 TextView m_TextView=null;
	 int image_alpha=255;   //透明度	 
	 Handler m_Handler=new Handler();    //处理消息队列
	 boolean isrung=false;
	 @SuppressWarnings("deprecation")
	public void onCreate(Bundle savedInstanceState)
	 {
		 super.onCreate(savedInstanceState);
		 setContentView(R.layout.image);
		 isrung=true;
		 m_ImageView=(ImageView)findViewById(R.id.image);
		 m_TextView=(TextView)findViewById(R.id.textview);
		 
		 //设置图片资源
		 m_ImageView.setImageResource(R.drawable.thumb);
		 m_ImageView.setAlpha(image_alpha);
		 
		 //开启一个线程来让alpha值递减
		 new Thread(new Runnable(){

			@Override
			public void run() {
				// TODO Auto-generated method stub
				while(isrung){
					try{
						Thread.sleep(200);		
						updateAlpha();
					}
					catch(InterruptedException e)
					{
						e.printStackTrace();						
					}					
				}
			} 
		 }).start();
		 m_Handler=new Handler(){
			public void handleMessage(Message msg)
			{
			   	super.handleMessage(msg);
				m_ImageView.setAlpha(image_alpha);
				m_TextView.setText("现在的alpha值是:"+Integer.toString(image_alpha));
				m_ImageView.invalidate();				
			}			 
		 };		 
	 }
	 public void updateAlpha()
	 {
		if(image_alpha-7>=0){
			image_alpha-=7;
		} 
		else{
			image_alpha=0;
			isrung=false;			
		} 
		 m_Handler.sendMessage(m_Handler.obtainMessage());
	 }	 
 }
图片会慢慢变透明,最后看不到了。 
 m_ImageView.setImageResource(R.drawable.thumb);   设置图片资源,把图片放到工程目录下的 ./res/drawable 其中一个目录就行。
m_Handler.obtainMessage()  可以从全局的消息池中得到一个消息。

2. ImageButton

1) 在 XML文件中添加<ImageButton>

<ImageButton 
        android:id="@+id/image_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ll"             
/>
2) 程序很简单,用法同一般的button没什么区别
 m_ImageBtn.setImageDrawable(getResources().getDrawable(R.drawable.bb));        //这个可以更换image.
 后面的用法也是一样的设置监听事件。

3.Gallery
1) 在 XML 文件中加入 <Gallery>
<Gallery
        android:id="@+id/gallery"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
/>
2) 添加 MyGallery.java
public class MyGallery extends Activity{
	private Gallery m_gallery=null;
	public void onCreate(Bundle savedInstanceState)
	 {
		 super.onCreate(savedInstanceState);
		 setContentView(R.layout.gallery);
		 
		 m_gallery=(Gallery)findViewById(R.id.gallery);
		 m_gallery.setAdapter(new ImageAdapter(this));      //添加Adapter,并把this传过去
		 
		 //设置gallerya的背景
		 m_gallery.setBackgroundResource(R.drawable.mm);
		 m_gallery.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				// TODO Auto-generated method stub
				Toast.makeText(MyGallery.this,"您选择了"+(position+1)+"号图片", Toast.LENGTH_SHORT).show();
			}			 
		});	 
	 }	
}
这里设置了背景,添加了提供图片资源的Adapter,并设置了监听事件。
3)添加 ImageAdapter.java
public class ImageAdapter extends BaseAdapter{
	private Context m_Context;
	private Integer[] m_ImageIds=                  //这里是图片资源
		{
			R.drawable.mm1,
			R.drawable.mm2,
			R.drawable.mm3,
			R.drawable.mm4,
		};	
	public ImageAdapter(Context c){             //传递进来的是一个MyGallery类的对象
		m_Context=c;		
	}
	public int getCount() {
		// TODO Auto-generated method stub
		return m_ImageIds.length;
	}
	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return position;
	}
	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		ImageView imageview=new ImageView(m_Context);
		imageview.setImageResource(m_ImageIds[position]);
		//设置显示大小
		imageview.setLayoutParams(new Gallery.LayoutParams(240, 240));
		imageview.setScaleType(ImageView.ScaleType.FIT_CENTER);
		return imageview;
	}	
}

  gallery 只是实现图片可以左右拖动;一般是跟ImageSwitcher 一起联用,ImageSwitcher 实现图片切换,就像在Windows上点“上一张”、“下一张”切换一样。Gallery + ImageSwitcher 可以实现触摸了其中一张图片,然后将这张图片显示在正中央放大显示,这才真正实现了图片浏览效果。查看这篇文章:Android_Gallery(画廊)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值