Android入门之ImageSwitcher(纯Java)


    

    

  1. import Android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.view.View;  
  4. import android.view.Window;  
  5. import android.view.View.OnClickListener;  
  6. import android.widget.*;  
  7. import android.widget.ImageView.ScaleType;  
  8. import android.widget.ViewSwitcher.ViewFactory;  
  9.   
  10. public class ImageSwitcherTest extends Activity {  
  11.       
  12.     private ImageSwitcherTest ist=this;     //ist   
  13.       
  14.     private LinearLayout mainLayout=null;   //定义一个线性布局,主布局   
  15.     private ImageSwitcher is=null;          //定义图片切换控件   
  16.     private RelativeLayout layout=null;     //定义一个相对布局,用于盛放两个按钮   
  17.     private TextView tv=null;               //定义一个文本   
  18.     private Button preButton=null;          //按钮,上一张   
  19.     private Button nextButton=null;         //按钮,下一张   
  20.     private int[] imageList={ R.drawable.p1,R.drawable.p2,R.drawable.p3,R.drawable.p4};//图片资源数组   
  21.     private int index=0;                    //图片索引   
  22.       
  23.     public void onCreate(Bundle savedInstanceState) {  
  24.         super.onCreate(savedInstanceState);  
  25.         requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题   
  26.         mainLayout_init();  
  27.         setContentView(mainLayout);  
  28.     }  
  29.     /*mianLayout初始化*/  
  30.     void mainLayout_init(){  
  31.         mainLayout=new LinearLayout(this);  
  32.         LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(-1,-1);  
  33.         mainLayout.setLayoutParams(lp);  
  34.         mainLayout.setOrientation(LinearLayout.VERTICAL);  
  35.         is_init();  
  36.         mainLayout.addView(is);  
  37.         layout_init();  
  38.         mainLayout.addView(layout);  
  39.     }  
  40.     /*is初始化*/  
  41.     void is_init(){  
  42.         is=new ImageSwitcher(this);  
  43.         LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(-1,-2);  
  44.         is.setLayoutParams(lp);  
  45.         is.setFactory(new ViewFactory(){  
  46.             /* 
  47.              * 此处ViewFacktroy是一个接口,类似于OnClickeLisnter之类的 
  48.              * 我们可以新建一个ViewFactroy,也可以让Activity implements ViewFactory 
  49.              */  
  50.             public View makeView() {  
  51.                 ImageView iv=new ImageView(ist);  
  52.                 iv.setScaleType(ScaleType.FIT_CENTER);  
  53.                 iv.setLayoutParams(new ImageSwitcher.LayoutParams(-1,-1));  
  54.                 return iv;  
  55.             }  
  56.         });  
  57.         is.setImageResource(imageList[index]);  
  58.     }  
  59.     /*layout初始化*/  
  60.     void layout_init(){  
  61.         layout=new RelativeLayout(this);  
  62.         RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(-1,-2);  
  63.         layout.setLayoutParams(lp);  
  64.         tv_init();  
  65.         layout.addView(tv);  
  66.         preButton_init();  
  67.         layout.addView(preButton);  
  68.         nextButton_init();  
  69.         layout.addView(nextButton);  
  70.     }  
  71.     /*tv初始化*/  
  72.     void tv_init(){  
  73.         tv=new TextView(this);  
  74.         RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(-2,-2);  
  75.         lp.addRule(RelativeLayout.CENTER_HORIZONTAL);  
  76.         tv.setLayoutParams(lp);  
  77.         tv.setText(String.valueOf(index+1)+"/4");  
  78.     }  
  79.     /*preButton初始化*/  
  80.     void preButton_init(){  
  81.         preButton=new Button(this);  
  82.         RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(-2,-2);  
  83.         lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);  
  84.         preButton.setLayoutParams(lp);  
  85.         preButton.setText("上一张");  
  86.         preButton.setEnabled(false);  
  87.         preButton.setOnClickListener(new OnClickListener(){  
  88.             public void onClick(View v) {  
  89.                 if(index==3){  
  90.                     nextButton.setEnabled(true);  
  91.                 }  
  92.                 if(index>0){  
  93.                     index--;  
  94.                     is.setImageResource(imageList[index]);  
  95.                     if(index==0){  
  96.                         preButton.setEnabled(false);  
  97.                     }  
  98.                 }  
  99.                 tv.setText(String.valueOf(index+1)+"/4");  
  100.             }  
  101.         });  
  102.     }  
  103.     /*nextButton初始化*/  
  104.     void nextButton_init(){  
  105.         nextButton=new Button(this);  
  106.         RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(-2,-2);  
  107.         lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);  
  108.         nextButton.setLayoutParams(lp);  
  109.         nextButton.setText("下一张");  
  110.         nextButton.setOnClickListener(new OnClickListener(){  
  111.             public void onClick(View v) {  
  112.                 if(index==0){  
  113.                     preButton.setEnabled(true);  
  114.                 }  
  115.                 if(index<3){  
  116.                     index++;  
  117.                     is.setImageResource(imageList[index]);  
  118.                     if(index==3){  
  119.                         nextButton.setEnabled(false);  
  120.                     }  
  121.                 }  
  122.                 tv.setText(String.valueOf(index+1)+"/4");  
  123.             }  
  124.         });  
  125.     }  
  126. }  

相关内容