歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android Gallery實現選中放大的效果

最近也在一點點學習,還是老樣子,把新學的知識總結一下,方便以後參考用。

現在大多Android入門教程中,都給大家教了gallery的基本用法,浏覽圖片時大小一樣,比較死板。咱們這裡稍微加一點點效果:選中放大。

其實也非常簡單,就是在適配器中public View getView(int position, View convertView, ViewGroup parent) {}這個抽象方法中做相應處理即可:選中的設置大一點,未選中的設置小一點!

效果實現如下:

閒話少說,貼代碼:

galleryAdapter.java

  1. package com.contacts;  
  2.   
  3. import android.content.Context;  
  4. import android.view.View;  
  5. import android.view.ViewGroup;  
  6. import android.view.animation.Animation;  
  7. import android.view.animation.AnimationUtils;  
  8. import android.widget.BaseAdapter;  
  9. import android.widget.Gallery;  
  10. import android.widget.ImageView;  
  11.   
  12. public class galleryAdapter extends BaseAdapter{  
  13.     Context mContext;  
  14.     private int selectItem;  
  15.     private int drawable1[]=new int[] {R.drawable.center,R.drawable.left,R.drawable.right};  
  16. public galleryAdapter(Context mContext){  
  17.     this.mContext=mContext;  
  18. }  
  19.     @Override  
  20.     public int getCount() {  
  21.         // TODO Auto-generated method stub  
  22.         return Integer.MAX_VALUE;          //這裡的目的是可以讓圖片循環浏覽  
  23.     }  
  24.   
  25.     @Override  
  26.     public Object getItem(int position) {  
  27.         // TODO Auto-generated method stub  
  28.         return position;  
  29.     }  
  30.   
  31.     @Override  
  32.     public long getItemId(int position) {  
  33.         // TODO Auto-generated method stub  
  34.         return position;  
  35.     }  
  36.     public void setSelectItem(int selectItem) {  
  37.           
  38.         if (this.selectItem != selectItem) {                  
  39.         this.selectItem = selectItem;  
  40.         notifyDataSetChanged();                 
  41.         }  
  42.     }  
  43.       
  44.   
  45.     @Override  
  46.     public View getView(int position, View convertView, ViewGroup parent) {  
  47.         // TODO Auto-generated method stub  
  48.         ImageView imageView=new ImageView(mContext);  
  49.         imageView.setImageResource(drawable1[position%drawable1.length]);  
  50. //取余,讓圖片循環浏覽  
  51.           
  52.         if(selectItem==position){  
  53.         Animation animation = AnimationUtils.loadAnimation(mContext, R.anim.my_scale_action);    //實現動畫效果  
  54.         imageView.setLayoutParams(new Gallery.LayoutParams(105,120));  
  55.           imageView.startAnimation(animation);  //選中時,這是設置的比較大  
  56.                     }  
  57.         else{  
  58.             imageView.setLayoutParams(new Gallery.LayoutParams(75,90));  
  59. //未選中  
  60.         }  
  61.         return imageView;  
  62.     }  
  63.   
  64. }  

ContactsActivity.java

  1. package com.contacts;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.View;  
  6. import android.widget.AdapterView;  
  7. import android.widget.AdapterView.OnItemSelectedListener;  
  8. import android.widget.Gallery;  
  9. import android.widget.ImageSwitcher;  
  10. import android.widget.ImageView;  
  11. import android.widget.LinearLayout.LayoutParams;  
  12.   
  13. public class ContactsActivity extends Activity implements OnItemSelectedListener {  
  14.     /** Called when the activity is first created. */  
  15.     private galleryAdapter adapter;  
  16.     @Override  
  17.     public void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.main);  
  20.         Gallery gallery=(Gallery)findViewById(R.id.gallery);  
  21.         adapter=new galleryAdapter(this);  
  22.         gallery.setAdapter(adapter);  
  23.        gallery.setSpacing(5);  
  24.         gallery.setOnItemSelectedListener(this);  
  25.     }  
  26.     public void onItemSelected(AdapterView<?> parent, View view, int position,long id) {  
  27.           
  28.         adapter.setSelectItem(position);  //當滑動時,事件響應,調用適配器中的這個方法。   
  29.           
  30.   
  31.     }  
  32.     @Override  
  33.     public void onNothingSelected(AdapterView<?> arg0) {//抽象方法,必須實現  
  34.         // TODO Auto-generated method stub  
  35.           
  36.     }   
  37.   
  38. }  

Main.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <Gallery  
  8.          android:id="@+id/gallery"  
  9.          android:layout_width="fill_parent"   
  10.           android:layout_height="wrap_content"   
  11.         android:layout_marginTop="30dp"  
  12.   />   
  13. </LinearLayout>  

還有個動畫的配置文件,這裡就不貼了,感興趣的可以下載全部工程。

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2012年資料/4月/30日/Android Gallery實現選中放大的效果/

Copyright © Linux教程網 All Rights Reserved