2011-08-09 7 views
0

私はアンドロイドアプリケーションで画像をスワイプする方法を見つけようとしています。私はテキストビューでそれを行う方法の例を見つけましたが、ImageViewで同じことをすることはできません。 TextViewの持つコード:アンドロイドスワイプ画像

HorizontalPager realViewSwitcher = new HorizontalPager(getApplicationContext()); 

// Add some views to it 
final int[] backgroundColors = 
     { Color.RED, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW }; 
for (int i = 0; i < 5; i++) { 
    TextView textView = new TextView(getApplicationContext()); 
    textView.setText(Integer.toString(i + 1)); 
    textView.setTextSize(100); 
    textView.setTextColor(Color.BLACK); 
    textView.setGravity(Gravity.CENTER); 
    textView.setBackgroundColor(backgroundColors[i]); 
    realViewSwitcher.addView(textView); 
} 

// set as content view 
setContentView(realViewSwitcher); 

、ここでは私がImageViewsでやろうとしているコードです:

HorizontalPager realViewSwitcher = new HorizontalPager(getApplicationContext()); 
    Map<String, Integer> map = new HashMap<String, Integer>(); 
    map.put("one", R.drawable.one); 
    map.put("two", R.drawable.two); 
    map.put("three", R.drawable.three); 

    img1.setImageResource(map.get("one")); 
    img2.setImageResource(map.get("two")); 
    img3.setImageResource(map.get("three")); 
    realViewSwitcher.addView(img1); 
    realViewSwitcher.addView(img2); 
    realViewSwitcher.addView(img3); 

    setContentView(realViewSwitcher); 

画像1、2、3、私は自分のコードを使用して描画可能folder.Whenでありますそれは私を投げている例外:

LogCat:

08-09 09:21:24.097: ERROR/AndroidRuntime(743): Uncaught handler: thread main exiting due to uncaught exception 
08-09 09:21:24.115: ERROR/AndroidRuntime(743): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.stampii.stampii/com.stampii.stampii.cards.Cards}: java.lang.NullPointerException 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at android.os.Looper.loop(Looper.java:123) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at java.lang.reflect.Method.invoke(Method.java:521) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at dalvik.system.NativeStart.main(Native Method) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743): Caused by: java.lang.NullPointerException 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at com.stampii.stampii.cards.Cards.onCreate(Cards.java:30) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
08-09 09:21:24.115: ERROR/AndroidRuntime(743):  ... 11 more 

どのように物事を働かせるには?

答えて

1

これを試してみて、私たちは単にViewPagerの概念を使用することができ、画像をスワイプするために

HorizontalPager realViewSwitcher = new HorizontalPager(getApplicationContext()); 

ImageView img1 = new ImageView(getApplicationContext()); 
ImageView img2 = new ImageView(getApplicationContext()); 
ImageView img3 = new ImageView(getApplicationContext()); 

img1.setImageResource(R.drawable.one); 
img2.setImageResource(R.drawable.two); 
img3.setImageResource(R.drawable.three); 

realViewSwitcher.addView(img1); 
realViewSwitcher.addView(img2); 
realViewSwitcher.addView(img3); 

setContentView(realViewSwitcher); 
+0

うんでviewpagerは、それが働いている1.set!どうもありがとう!別の質問:私はこれをどのようにすることができます:画像をクリックすると、2つのボタンを表示して、画像をスワイプすることができます。何を使うべきですか? –

+0

今後の参考になるようご質問ください!この新しい質問は重要です –

+0

質問されました! –

0

してくださいに報告。

レイアウト

<android.support.v4.view.ViewPager 
android:id="@+id/view_pager" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" /> 
</RelativeLayout> 

public class MyMain extends Activity { 

     @Override public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); setContentView(R.layout.main); 

      ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); 
       ImagePagerAdapter adapter = new ImagePagerAdapter(); 
       viewPager.setAdapter(adapter); 
      } 

     private class ImagePagerAdapter extends PagerAdapter { 
      private int[] mImages = new int[] { 
        R.drawable.one, 
        R.drawable.two, 
        R.drawable.hree, 
        R.drawable.four 
         }; 

        @Override 
        public int getCount() { 
        return mImages.length; 
        } 

     @Override 
      public boolean isViewFromObject(View view, Object object) { 
       return view == ((ImageView) object); 
       } 

      @Override 
      public Object instantiateItem(ViewGroup container, int position) { 
       Context context = MyMain.this; 
       ImageView imageView = new ImageView(context); 
      int padding =context.getResources(). 
       getDimensionPixelSize(R.dimen.padding_medium); 
      imageView.setPadding(padding, padding, padding, padding); 
      imageView.setScaleType(ImageView.ScaleType.CENTER); 
    imageView.setImageResource(mImages[position]); 
    ((ViewPager) container).addView(imageView, 0);