Android基础TOP6_3:Gally和ImageSwitcher实现画廊

结构:

Activity:

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.example.top6_3.MainActivity" >
11    <Gallery 
12     android:id="@+id/gly"
13     android:layout_height="60dp"
14     android:layout_width="fill_parent"
15     android:animationDuration="1000"
16     android:gravity="center_vertical"
17     android:spacing="20dp"
18     android:unselectedAlpha="0.5"
19     android:background="#55000000"
20      />
21 <ImageSwitcher 
22     android:paddingTop="10dp"
23     android:id="@+id/is"
24     android:layout_width="wrap_content"
25     android:layout_height="match_parent"></ImageSwitcher>
26 
27 </LinearLayout>

JAVA:

MainActivity类:
 1 package com.example.top6_3;
 2 
 3 
 4 
 5 
 6 import android.app.Activity;
 7 import android.os.Bundle;
 8 import android.view.Menu;
 9 import android.view.MenuItem;
10 import android.view.View;
11 import android.view.animation.Animation;
12 import android.view.animation.AnimationUtils;
13 import android.widget.Gallery.LayoutParams;
14 import android.widget.AdapterView;
15 import android.widget.Gallery;
16 import android.widget.ImageSwitcher;
17 import android.widget.ImageView;
18 import android.widget.ViewSwitcher.ViewFactory;
19 
20 
21 public class MainActivity extends Activity {
22     private Gallery gal;
23     private ImageView iv;
24     private ImageAdapter adapter; 
25     private ImageSwitcher is;
26     private static final int[]  imgslds={
27         R.drawable.bjl,
28         R.drawable.dfhgc,
29         R.drawable.fg,
30         R.drawable.gj
31 };
32     @Override
33     protected void onCreate(Bundle savedInstanceState) {
34         super.onCreate(savedInstanceState);
35         setContentView(R.layout.activity_main);
36          is=(ImageSwitcher) findViewById(R.id.is);
37          is.setFactory(new ViewFactory() {
38             
39             @Override
40             public View makeView() {
41                 // TODO Auto-generated method stub
42                 ImageView i=new ImageView(getApplicationContext());
43                 //i.setBackgroundColor(0Xff000000);
44                 i.setScaleType(ImageView.ScaleType.FIT_CENTER);
45                 i.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT,
46                         LayoutParams.MATCH_PARENT));
47                 return i;
48             }
49         });
50          is.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
51       is.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));
52       gal=(Gallery) findViewById(R.id.gly);
53       adapter=new ImageAdapter(this);
54       gal.setAdapter(adapter);
55        gal.setOnItemSelectedListener(gaILidstener);
56        }
57            private Gallery.OnItemSelectedListener gaILidstener=new Gallery.OnItemSelectedListener() {
58 
59            @Override
60            public void onItemSelected(AdapterView<?> parent, View view,
61                    int position, long id) {
62                // TODO Auto-generated method stub
63                is.setImageResource(imgslds[position]);
64            }
65 
66            @Override
67            public void onNothingSelected(AdapterView<?> parent) {
68                // TODO Auto-generated method stub
69                
70            }
71     
72            };
73 }

ImageAdapter类:

 1 package com.example.top6_3;
 2 
 3 import android.R.integer;
 4 import android.content.Context;
 5 import android.view.Gravity;
 6 import android.view.View;
 7 import android.view.ViewGroup;
 8 import android.widget.BaseAdapter;
 9 import android.widget.Gallery;
10 import android.widget.ImageView;
11 
12 public class ImageAdapter extends BaseAdapter {
13     private Context context;
14     
15     private static final int[]  imgslds={
16         R.drawable.bjl,
17         R.drawable.dfhgc,
18         R.drawable.fg,
19         R.drawable.gj
20 };
21     public ImageAdapter(Context c){
22         context=c;
23         
24     }
25     public int getCount() {
26         // TODO Auto-generated method stub
27         //
28         return imgslds.length;
29         
30     }
31 
32     @Override
33     public Object getItem(int position) {
34         // TODO Auto-generated method stub
35         return position;
36     }
37 
38     @Override
39     public long getItemId(int position) {
40         // TODO Auto-generated method stub
41         return position;
42     }
43 
44     @Override
45     public View getView(int position, View convertView, ViewGroup parent) {
46         // TODO Auto-generated method stub
47         ImageView iv=new ImageView(context);
48         iv.setImageResource(imgslds[position]);
49         iv.setScaleType(ImageView.ScaleType.FIT_CENTER);
50         iv.setLayoutParams(new Gallery.LayoutParams(120,80));
51         //iv.setBackgroundResource(R.drawable.bjl);
52         return iv; 
53         
54     }
55 
56 }

效果图:

原文地址:https://www.cnblogs.com/AndroidCSY/p/6698761.html