Android Gallery与ImageSwitcher使用

例题2-14

图片自己存放在工程中

activity_main.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2     <!--suppress ALL -->
 3 <TableLayout android:layout_width="wrap_content"
 4     android:layout_height="wrap_content"
 5     android:layout_gravity="center"
 6     xmlns:android="http://schemas.android.com/apk/res/android">
 7     <TableRow>
 8         <Gallery android:layout_height="wrap_content"
 9             android:layout_width="wrap_content"
10             android:id="@+id/gallery1"
11             android:spacing="10sp"
12             android:unselectedAlpha="0.5" />
13     </TableRow>
14     <TableRow>
15         <TextView android:layout_height="150dip"
16             android:layout_width="150dip"/>
17     </TableRow>
18     <TableRow>
19         <ImageSwitcher android:id="@+id/imageswitcher1"
20             android:layout_width="350dip"
21             android:layout_height="450dip">
22         </ImageSwitcher>
23     </TableRow>
24 </TableLayout>

Mainactivity.java

 1 package com.example.hello;
 2 
 3 import androidx.appcompat.app.AppCompatActivity;
 4 
 5 import android.os.Bundle;
 6 import android.view.View;
 7 import android.view.ViewGroup;
 8 import android.view.animation.AnimationUtils;
 9 import android.widget.AdapterView;
10 import android.widget.BaseAdapter;
11 import android.widget.Gallery;
12 import android.widget.ImageSwitcher;
13 import android.widget.ImageView;
14 import android.widget.ViewSwitcher;
15 
16 
17 public class MainActivity extends AppCompatActivity {
18     Gallery gallery;
19     ImageSwitcher imageSwitcher;
20     private int[] images={
21             R.drawable.p2, R.drawable.p3, R.drawable.p4, R.drawable.p5,
22             R.drawable.p6, R.drawable.p7, R.drawable.p8, R.drawable.p9,
23             R.drawable.p10, R.drawable.p11, R.drawable.p12, R.drawable.p1
24     };
25 
26     @Override
27     protected void onCreate(Bundle savedInstanceState) {
28         super.onCreate(savedInstanceState);
29         setContentView(R.layout.activity_main);
30         imageSwitcher=(ImageSwitcher) findViewById(R.id.imageswitcher1);
31         imageSwitcher.setFactory(new viewFactory());
32         imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));
33         imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));
34         imageSwitcher.setImageResource(R.drawable.p1);
35         gallery=(Gallery) findViewById(R.id.gallery1);
36         gallery = (Gallery)findViewById(R.id.gallery1);
37         gallery.setOnItemClickListener(new onItemSelectedListener());
38         gallery.setSpacing(10);
39         gallery.setAdapter(new baseAdapter());
40     }
41 
42     class viewFactory implements ViewSwitcher.ViewFactory{
43         @Override
44         public View makeView() {
45             ImageView imageView=new ImageView(MainActivity.this);
46             imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
47             return imageView;
48         }
49     }
50 
51     class onItemSelectedListener implements AdapterView.OnItemClickListener {
52         @Override
53         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
54             imageSwitcher.setImageResource((int)gallery.getItemIdAtPosition(position));
55         }
56 
57 
58         public void onNothingSelected(AdapterView<?> arg0){ }
59     }
60 
61     class baseAdapter extends BaseAdapter
62     {
63         public int getCount(){
64             return images.length;
65         }
66         public Object getItem(int position){
67             return null;
68         }
69 
70         @Override
71         public long getItemId(int position) {
72             return images[position];
73         }
74 
75         public View getView(int position, View convertVierw, ViewGroup parent)
76         {
77             ImageView imageView=new ImageView(MainActivity.this);
78             imageView.setImageResource(images[position]);
79             imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
80             imageView.setLayoutParams(new Gallery.LayoutParams(150,150));
81             return imageView;
82         }
83     }
84 }
原文地址:https://www.cnblogs.com/xiaowangdatie/p/13728730.html