歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android Gallery實現選中放大的效果

Android Gallery實現選中放大的效果

日期:2017/3/1 10:23:46   编辑:Linux編程

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

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

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

效果實現如下:

閒話少說,貼代碼:

galleryAdapter.java

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

ContactsActivity.java

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

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. <Gallery
  7. android:id="@+id/gallery"
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:layout_marginTop="30dp"
  11. />
  12. </LinearLayout>

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

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

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

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

Copyright © Linux教程網 All Rights Reserved