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 คลาสสาธารณะขยายกิจกรรม { ส่วนตัว 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 ส่วนตัว imageSwitcher; ปุ่มส่วนตัวขึ้น, ลง; @แทนที่โมฆะที่ได้รับการป้องกัน onCreate (บันเดิลที่บันทึกไว้InstanceState) { 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(นี้, android.R.anim.fade_in)); imageSwitcher.setOutAnimation (AnimationUtils.loadAnimation (นี้, android.R.anim.fade_out)); imageSwitcher.setFactory (ViewFactory ใหม่ () { ดูสาธารณะ makeView () { ImageView imageView = new ImageView (MainActivity.this); imageView.setScaleType (ImageView.ScaleType.FIT_CENTER); imageView.setLayoutParams (ImageSwitcher.LayoutParams ใหม่ (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT )); กลับ imageView; } }); imageSwitcher.setImageResource(imagId[ดัชนี]); up.setOnClickListener (ใหม่ OnClickListener () { @ แทนที่โมฆะสาธารณะ onClick (ดู v) { ถ้า (ดัชนี> 0) { ดัชนี --; } อื่น ๆ { ดัชนี = imagId.length-1; } imageSwitcher.setImageResource (imagId [ดัชนี] } }); down.setOnClickListener(ใหม่ OnClickListener() { @แทนที่โมฆะสาธารณะ onClick (ดู 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:พื้นหลัง="@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" /> <ปุ่ม 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 = จริง; ลอง { bitmapIn = BitmapFactory.decodeFile (Puzzle.user.CUSTOM_IMAGE [customImage], เลือก); } catch (ข้อยกเว้น e) { ถ้า (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 = เท็จ; opt.inScaled = เท็จ; opt.outWidth=full_w; opt.outHeight=full_h; bitmapIn = BitmapFactory.decodeFile(Puzzle.user.CUSTOM_IMAGE[customImage], เลือก);}