5. this.imageLayout.addView(imageView, new LinearLayout.LayoutParams(LinearLayou
t.LayoutParams.WRAP_CONTENT,
6. LinearLayout.LayoutParams.WRAP_CONTENT)); 7. } catch (IOException e) { 8. e.printStackTrace(); 9. }
5.3.2 ImageButton
图5.3.2ImageButton
android.widget.ImageButton图片控件,继承自android.widget.ImageView,在android.widget包中。
最简单的使用方法。src设置图片路径,可引用drawable的图片。
Xml代码
1.
动态声明ImageView,设置src。
Java代码
1. 2. 3. 4. 5. 6. 7. 8. 9.
try {
ImageButton imageButton = new ImageButton(this);
InputStream inputStream = super.getAssets().open(\
imageButton.setImageDrawable(Drawable.createFromStream(inputStream, \
this.imageLayout.addView(imageButton, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT)); } catch (IOException e) { e.printStackTrace(); }
5.3.3 ImageSwitcher和Gallery
图5.3.3 ImageSwitcher
android.widget. ImageSwitcher图片控件,继承自
android.widget.ViewSwitcher(ViewGroup)。在android.widget包中。 ImageSwithcer是用来图片显示那块区域的控件,使用方法
setInAnimation(Animation),setOutAnimation(Animation)设置动画。 Gallery是来控制底下那个图标索引列表索引用的。ImageAdapter继承自BaseAdapter,设置Gallery的适配器。
在layout添加ImageSwitcher和Gallery。定义Activity,implements接口OnItemSelectedListener, ViewFactory。onCreate的时候定义要显示图片路径列表,设置Gallery的Adapter。onItemSelected事件触发时,设置对应的图片。
Layout文件。
Xml代码
1.
2.
6.
12. 16. android:layout_alignParentBottom=\ 17. android:layout_alignParentLeft=\ 18. android:gravity=\ 19. android:spacing=\ /> 20. 21. SwitcherActivity类。 Java代码 1. public class SwitcherActivity extends Activity implements OnItemSelectedListener, View Factory { 2. 3. private ImageSwitcher imageSwitcher; 4. private Gallery gallery; 5. 6. private ArrayList 8. @Override 9. protected void onCreate(Bundle savedInstanceState) { 10. super.onCreate(savedInstanceState); 11. super.setContentView(R.layout.switcher); 12. this.imageSwitcher = (ImageSwitcher) findViewById(R.id.switcher); 13. this.gallery = (Gallery) findViewById(R.id.gallery); 14. 15. for (int i = 1; i <= 20; i++) { 16. this.imageAssetPathList.add(\ 17. } 18. 19. this.imageSwitcher.setFactory(this); 20. this.gallery.setAdapter(new ImageAdapter(this, this.imageAssetPathList)); 21. this.gallery.setOnItemSelectedListener(this); 22. 23. } 24. 25. @Override 26. public View makeView() { 27. ImageView imageView = new ImageView(this); 28. imageView.setBackgroundColor(0xFF000000); 29. imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); 30. imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FIL L_PARENT, LayoutParams.FILL_PARENT)); 31. return imageView; 32. } 33. 34. @Override 35. public void onItemSelected(AdapterView> parent, View view, int position, long id) { 36. try { 37. InputStream inputStream = super.getAssets().open(this.imageAssetPathList.get(po sition)); 38. imageSwitcher.setImageDrawable(Drawable.createFromStream(inputStream, \ position)); 39. } catch (IOException e) { 40. e.printStackTrace(); 41. } 42. } 43. 44. @Override 45. public void onNothingSelected(AdapterView> parent) { 46. 47. } 48. 49. } ImageAdapter类 Java代码 1. 2. 3. 4. 5. 6. 7. 8. public class ImageAdapter extends BaseAdapter { private Context content; private ArrayList public ImageAdapter(Context content, ArrayList this.imageAssetPathList = imageAssetPathList;