MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
package com.zhang.showPhoto; import android.app.ActionBar.LayoutParams; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.ImageSwitcher; import android.widget.ImageView; import 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 }; private int index= 0 ; private ImageSwitcher imageSwitcher; private Button up,down; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); up=(Button) findViewById(R.id.bt1); down=(Button) 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 )); return imageView; } }); 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<? 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 = "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" /> </ LinearLayout > |
再来看一段代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
// 获取图片的宽高 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" ); return ; } 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); if (Size_rate> 10 ){ Size_rate+= 5 ; Size_rate/= 10 ; } else { 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);} |