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; public class MainActivity extends Activity { private 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 };プライベート int インデックス = 0;プライベート ImageSwitcher 画像スイッチャー;プライベートボタンの上下。 @Override protected void onCreate(Bundle SavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); up=(ボタン) findViewById(R.id.bt1); down=(ボタン) 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.setLayoutParams(new ImageSwitcher.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT ));画像ビュー; } }); imageSwitcher.setImageResource(imagId[index]); up.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(index>0){index--; }else{index=imagId.length-1; } imageSwitcher.setImageResource(imagId[index] ); } }); down.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(index<imagId.length-1){index++; }else{index=0; } imageSwitcher.setImageResource(imagId[index]); } }); } }
main.xml
<?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" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="上一张" android:id="@+id/bt1" /> <ImageSwitcher android: layout_width="ラップコンテンツ" android:layout_height="ラップコンテンツ" android:id="@+id/imagSw1" android:layout_gravity="center" /> <ボタン android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="下一张" android:id="@+id/bt2" /> </LinearLayout >
再訪第一段代コード
// 画像を取得するのに非常に高い BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inJustDecodeBounds = true; try{ bitmapIn = BitmapFactory.decodeFile(Puzzle.user.CUSTOM_IMAGE[customImage], opt); }catch(Exception e){ if(D) Log.d(TAG,"error");戻る; int in_w=opt.outWidth,in_h=opt.outHeight; // imageview の尺度を取得する imageview の比が元の図と同じかどうか注意するための計算が必要 full_w = imageview.getWidth() full_h = getHeight() // 計算放比 4 五入 int Size_rate=(in_w*in_h*10 )/(full_w*full_h); if(サイズレート>10){ サイズレート+=5;サイズレート/=10; }else{ サイズ_レート=1; } // 再設置opt 读取図片文件 opt.inSampleSize=Size_rate; opt.inJustDecodeBounds = false; opt.inScaled = false; opt.outWidth=full_w; opt.outHeight=フル_h; bitmapIn = BitmapFactory.decodeFile(Puzzle.user.CUSTOM_IMAGE[customImage], opt);}