選択 モバイル版に入る | PC版を継続
Android開発に助かるApkSchool版主募集中DISCUZ!X3.1 Japanese Version提供
表示: 1950|返信: 0

Android UI篇 GridAndImageSwitcherSample

[リンクをコピー]
发表于 2013-6-30 14:41:15 | 显示全部楼层 |阅读模式
webhostingpad
この記事は最後 niuxs より 2013-6-30 15:59 編集された

main.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical" >

  6. <GridView
  7. android:id="@+id/gridview"
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:gravity="center"
  11. android:horizontalSpacing="2pt"
  12. android:numColumns="4"
  13. android:verticalSpacing="2pt" />

  14. <ImageSwitcher
  15. android:id="@+id/imageswitch"
  16. android:layout_width="320dp"
  17. android:layout_height="320dp"
  18. android:layout_gravity="center_horizontal"
  19. android:paddingTop="5pt" />

  20. </LinearLayout>
コードコピー
image.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical" >

  6. <ImageView
  7. android:id="@+id/imageview"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. />
  11. </LinearLayout>
コードコピー
GridAndImageSwitcherSampleActivity.java
  1. package net.apkschool.edu;

  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;

  6. import android.app.Activity;
  7. import android.os.Bundle;
  8. import android.view.View;
  9. import android.view.ViewGroup.LayoutParams;
  10. import android.view.animation.AnimationUtils;
  11. import android.widget.AdapterView;
  12. import android.widget.AdapterView.OnItemClickListener;
  13. import android.widget.AdapterView.OnItemSelectedListener;
  14. import android.widget.GridView;
  15. import android.widget.ImageSwitcher;
  16. import android.widget.ImageView;
  17. import android.widget.SimpleAdapter;
  18. import android.widget.ViewSwitcher.ViewFactory;

  19. public class GridAndImageSwitcherSampleActivity extends Activity {
  20. /** Called when the activity is first created. */
  21. // 画像のID
  22. int[] imagesId = { R.drawable.q1, R.drawable.q2, R.drawable.q3, R.drawable.q4, R.drawable.q5, R.drawable.q6, R.drawable.q7, R.drawable.q8, R.drawable.q9,
  23. R.drawable.q10, R.drawable.q11, R.drawable.q12 };

  24. @Override
  25. public void onCreate(Bundle savedInstanceState) {
  26. super.onCreate(savedInstanceState);
  27. setContentView(R.layout.main);
  28. // 画像をKEY,VALUEの形式で容器に入れる
  29. List<Map<String, Object>> imageList = new ArrayList<Map<String, Object>>();
  30. for (int i = 0; i < imagesId.length; i++) {
  31. Map<String, Object> imageMap = new HashMap<String, Object>();
  32. imageMap.put("image", imagesId[i]);
  33. imageList.add(imageMap);
  34. }
  35. GridView glv = (GridView) findViewById(R.id.gridview);
  36. final ImageSwitcher imageSwitcher = (ImageSwitcher) findViewById(R.id.imageswitch);
  37. // ImageSwitcher的アニメーション効果を設定
  38. imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left));
  39. imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right));
  40. // 画像の切替効果を設定
  41. imageSwitcher.setFactory(new ViewFactory() {
  42. @Override
  43. public View makeView() {
  44. ImageView iv = new ImageView(GridAndImageSwitcherSampleActivity.this);
  45. iv.setBackgroundColor(0xff0000);
  46. iv.setScaleType(ImageView.ScaleType.FIT_CENTER);
  47. iv.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
  48. return iv;
  49. }
  50. });
  51. // Adapterを作成
  52. SimpleAdapter sa = new SimpleAdapter(this, imageList, R.layout.image, new String[] { "image" }, new int[] { R.id.imageview });
  53. glv.setAdapter(sa);
  54. //
  55. glv.setOnItemSelectedListener(new OnItemSelectedListener() {
  56. @Override
  57. public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {
  58. // TODO Auto-generated method stub
  59. imageSwitcher.setImageResource(imagesId[position % imagesId.length]);
  60. }

  61. @Override
  62. public void onNothingSelected(AdapterView<?> arg0) {
  63. // TODO Auto-generated method stub
  64. }
  65. });
  66. //
  67. glv.setOnItemClickListener(new OnItemClickListener() {
  68. @Override
  69. public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
  70. // TODO Auto-generated method stub
  71. imageSwitcher.setImageResource(imagesId[position % imagesId.length]);
  72. }
  73. });
  74. }
  75. }
コードコピー

この記事に更なる添付があります

貴方は ログイン 後、ダウンロード・閲覧が可能となる,アカウントない?直ぐ登録

x
返信

道具使用 レポート

返信は先にログインが必要 ログイン | 直ぐ登録

フォーラム点数規則

フリーランス

モバイル版|APK School Net  

GMT+8, 2017-12-12 06:31 , Processed in 0.117051 second(s), 25 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速返信 トップへ リストへ