开发者

Android Swipe Images

I'm trying to find a way to swipe images in my android application.I find a example of how to do that with textview,but I can't do the same thing with ImageView.Here is the original code with 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);

and here is the code that I'm trying to do with 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);

The images one,two,three are in drawable folder.When I use my code it's throwing me an Exception :

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/AndroidRunti开发者_运维百科me(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

Any ideas how to get the things to work?


Try this and report back please

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); 


For Swiping images we can simply use ViewPager concept.

1.set the viewpager in your layout

<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); 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜