zoukankan      html  css  js  c++  java
  • 初识ImageSwither

     imageswitcher继承自viewswitcher,使用ImageSwither只需要两步:

    1.为ImageSwither提供一个ViewFactory,该ViewFactory生成的View必须是ImageView.

    2.需要切换图片时,只要调用ImageSwither的setImageResource,setImageDrawable,setImageURI方法更换图片即可。

    下面是一个gallery,上面是个imageSwither,在gallery里每选择一张图片就会显示到Swither上,并有渐入渐出动画效果。

    ImageSwitcher + GridView

     1 import android.app.Activity;
     2 import android.os.Bundle;
     3 import android.view.View;
     4 import android.view.ViewGroup;
     5 import android.widget.AdapterView;
     6 import android.widget.AdapterView.OnItemClickListener;
     7 import android.widget.BaseAdapter;
     8 import android.widget.FrameLayout.LayoutParams;
     9 import android.widget.GridView;
    10 import android.widget.ImageSwitcher;
    11 import android.widget.ImageView;
    12 import android.widget.ViewSwitcher.ViewFactory;
    13 
    14 public class ImageSwitcherTest extends Activity {
    15     private GridView gridView;
    16     private ImageSwitcher switcher;
    17 
    18     private int[] mImage = new int[] { R.drawable.p0, R.drawable.p13,
    19             R.drawable.p16, R.drawable.p2, R.drawable.p4, R.drawable.p8 };
    20 
    21     @Override
    22     protected void onCreate(Bundle savedInstanceState) {
    23         // TODO Auto-generated method stub
    24         super.onCreate(savedInstanceState);
    25         setContentView(R.layout.layout_imageswitcher);
    26         switcher = (ImageSwitcher) findViewById(R.id.imageSwitcher2);
    27 
    28         switcher.setFactory(new ViewFactory() {
    29 
    30             @Override
    31             public View makeView() {
    32                 // TODO Auto-generated method stub
    33 
    34                 ImageView imageView = new ImageView(ImageSwitcherTest.this);
    35                 imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    36                 /*imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
    37                         LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));*/
    38                 return imageView;
    39             }
    40         });
    41         
    42         ImageAdapter adapter = new ImageAdapter();
    43         gridView = (GridView) findViewById(R.id.gridView2);    
    44         gridView.setAdapter(adapter);
    45         
    46         gridView.setOnItemClickListener(new OnItemClickListener() {
    47 
    48             @Override
    49             public void onItemClick(AdapterView<?> parent, View view,
    50                     int position, long id) {
    51                 // TODO Auto-generated method stub
    52                 switcher.setImageResource(mImage[position]);
    53             }
    54         });
    55         
    56     }
    57 
    58     class ImageAdapter extends BaseAdapter {
    59 
    60         @Override
    61         public int getCount() {
    62             // TODO Auto-generated method stub
    63             return mImage.length;
    64         }
    65 
    66         @Override
    67         public Object getItem(int position) {
    68             // TODO Auto-generated method stub
    69             return mImage[position];
    70         }
    71 
    72         @Override
    73         public long getItemId(int position) {
    74             // TODO Auto-generated method stub
    75             return position;
    76         }
    77 
    78         @Override
    79         public View getView(int position, View convertView, ViewGroup parent) {
    80             // TODO Auto-generated method stub
    81             ImageView imageView = new ImageView(ImageSwitcherTest.this);
    82             imageView.setImageResource(mImage[position]);
    83             return imageView;
    84         }
    85 
    86     }
    87 }
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <GridView
     8         android:id="@+id/gridView2"
     9         android:layout_width="match_parent"
    10         android:layout_height="254dp"
    11         android:numColumns="3"
    12         android:horizontalSpacing="pt"
    13         android:verticalSpacing="2pt"
    14         android:gravity="center"
    15          >
    16     </GridView>
    17 
    18     <ImageSwitcher
    19         android:id="@+id/imageSwitcher2"
    20         android:layout_width="match_parent"
    21         android:layout_height="wrap_content"
    22         android:layout_weight="0.94"
    23         android:layout_gravity="center_horizontal"
    24         android:inAnimation="@android:anim/fade_in"
    25         android:outAnimation="@android:anim/fade_out" 
    26         >
    27     </ImageSwitcher>
    28 
    29 </LinearLayout>
  • 相关阅读:
    GCD之各种派发
    Effective Objective-C 笔记之熟悉OC
    正则表达式之正向预查和负向预查
    vue的实例属性$refs
    vue的实例属性$options
    vue的实例属性$data
    vue的实例属性$el
    vue强制更新$forceUpdate()
    vue的extends的使用
    vue的mixins的使用
  • 原文地址:https://www.cnblogs.com/izhanjun/p/4204385.html
Copyright © 2011-2022 走看看