MainActivity.java
包com.zhang.showPhoto;導入 android.app.ActionBar.LayoutParams;導入 android.app.Activity;導入 android.os.Bundle;導入 android.view.View;導入 android.view.View.OnClickListener;導入 android.view.animation.AnimationUtils;導入 android .widget.Button;導入android.widget.ImageSwitcher;導入android.widget.ImageView;導入android.widget.ViewSwitcher.ViewFactory;公用類別 MainActivity 擴充 Activity { 私有 int[] imagId=new int[]{ R.drawable.img01,R.drawable.img02,R.drawable.img03,R.drawable.img04, R.drawable.img05,R.drawable .img06,R.drawable.img07,R.drawable.img08,R.drawable.img09,R.drawable.img10 };私有整數索引=0;私有影像切換器影像切換器;私有按鈕向上、向下; @Override protected void onCreate(Bundle savingInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);向上=(按鈕) findViewById(R.id.bt1);向下=(按鈕)findViewById(R.id.bt2); imageSwitcher =(ImageSwitcher)findViewById(R.id.imagSw1); imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in)); imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out)); imageSwitcher.setFactory(new ViewFactory() { public View makeView() { ImageView imageView = new ImageView(MainActivity.this); imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); imageView。 LayoutParams.WRAP_CONTENT )); 返回imageView } }); imageSwitcher.setImageResource(imagId[索引]); up.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(index>0){ index--; }else{ index=imagId.length-1; } imageSwitcher.setImageResource(imagId. ); down.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(index<imagId.length-1){ index++; }else{ index=0; } imageSwitcher.setImageResource(imagId[index]); } }); } }
主文件
<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@drawable/bg1" android:id="@+id/llayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:orientation="horizontal" > <按鈕android:layout_width=" wrap_content" android :layout_height="wrap_content" android:text="上一張" android:id="@+id/bt1" /> <ImageSwitcher android:layout_width="wrap_content" android:layout_height="wrap_content" android:id ="@ +id/imagSw1" android:layout_gravity="center" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="下一張" android:id="@+id /bt2" /> </線性佈局>
再看一段程式碼
// 取得圖片的寬高 BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inJustDecodeBounds = true;嘗試{ bitmapIn = BitmapFactory.decodeFile(Puzzle.user.CUSTOM_IMAGE[customImage], opt); }catch(異常e){ if(D) Log.d(TAG,"錯誤");返回; int in_w=opt.outWidth,in_h=opt.outHeight; // 取得imageview的尺寸注意imageview的寬高比要與原圖相同,否則需要另外計算full_w = imageview.getWidth() full_h = getHeight() // 計算縮放比例四配捨五入int Size_rate=(in_w* in_h*10 )/(full_w*full_h);如果(Size_rate>10){ Size_rate+=5; size_rate/=10; }其他{ Size_rate=1; } // 重新設定opt讀取圖片檔 opt.inSampleSize=Size_rate; opt.inJustDecodeBounds = false; opt.inScaled = false; opt.outWidth=full_w; opt.outHeight=full_h; bitmapIn = BitmapFactory.decodeFile(Puzzle.user.CUSTOM_IMAGE[customImage], opt);}