Advertisement
egslava

ViewPager с webView для фоток

Apr 8th, 2015
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.83 KB | None | 0 0
  1. package com.modelalliance.ma.ui.photo;
  2.  
  3. import android.support.v4.view.PagerAdapter;
  4. import android.support.v4.view.ViewPager;
  5. import android.support.v7.app.ActionBarActivity;
  6. import android.view.Menu;
  7. import android.view.MenuItem;
  8. import android.view.View;
  9. import android.view.ViewGroup;
  10. import android.webkit.WebView;
  11.  
  12. import com.androidquery.AQuery;
  13. import com.modelalliance.ma.App;
  14. import com.modelalliance.ma.R;
  15. import com.modelalliance.ma.api.Photo;
  16. import com.modelalliance.ma.api.UserBean;
  17. import com.modelalliance.ma.ui.login.ApiHelper;
  18.  
  19. import org.androidannotations.annotations.AfterViews;
  20. import org.androidannotations.annotations.Bean;
  21. import org.androidannotations.annotations.EActivity;
  22. import org.androidannotations.annotations.Extra;
  23. import org.androidannotations.annotations.OptionsItem;
  24. import org.androidannotations.annotations.OptionsMenu;
  25. import org.androidannotations.annotations.OptionsMenuItem;
  26. import org.androidannotations.annotations.ViewById;
  27.  
  28. import java.util.List;
  29.  
  30. import static com.modelalliance.ma.api.UserBean.RemovePhotoCallback;
  31.  
  32. /**
  33.  * Created by egslava on 17/12/14.
  34.  */
  35. @EActivity(R.layout.activity_photos_view_pager)
  36. @OptionsMenu(R.menu.menu_actionbar_photos_viewpager)
  37. public class ViewPagerPhotosActivity extends ActionBarActivity implements ViewPager.OnPageChangeListener {
  38.  
  39. //    @Extra String[] images = new String[]{
  40. //            "http://buymelaughs.com/wp-content/uploads/2013/12/Funny-memes-14.jpg",
  41. //            "http://www.newyorker.com/wp-content/uploads/2014/08/Stokes-Hello-Kitty2-1200.jpg",
  42. //            "http://i.guim.co.uk/static/w-620/h--/q-95/sys-images/Guardian/Pix/pictures/2014/8/28/1409228901360/de6aa8da-3f82-4069-9807-0e83513dad05-620x620.jpeg",
  43. //    };
  44.  
  45.     @Extra int     currentImage = 1;
  46.     @Extra boolean removable = false;
  47.  
  48.     @OptionsMenuItem MenuItem    removePhoto;
  49.  
  50.     @Bean ApiHelper api;
  51.     @Bean UserBean  user;
  52.     private PhotoAdapter adapter;
  53.  
  54.     List<Photo> images;
  55.  
  56.     @OptionsItem void removePhoto(){
  57.         user.removePhotoInBackground(this, currentImage, new RemovePhotoCallback() {
  58.             public void onRemove(List<Photo> newPhotos, int oldPhotoIndex, int newPhotoIndex) {
  59.                 images = newPhotos;
  60.                 currentImage = newPhotoIndex;
  61.                 init();
  62.             }
  63.         });
  64.  
  65.     }
  66.  
  67.     @ViewById ViewPager   viewPager;
  68.  
  69.     private AQuery aq;
  70.  
  71.     @AfterViews
  72.     void init(){
  73.         if (images == null){
  74.             images = (List<Photo>) App.parseList;
  75.             App.parseList = null;
  76.         }
  77.         if (images.size() < 1){
  78.             finish();
  79.         }
  80.  
  81.         getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  82.         adapter = new PhotoAdapter();
  83.         viewPager.setAdapter(adapter);
  84.         viewPager.setOnPageChangeListener(this);
  85.         viewPager.setCurrentItem(currentImage);
  86.         onPageSelected(currentImage);
  87. //        getSupportActionBar().setTitle( getString(R.string.title_activity_photos, currentImage, images.length) );
  88.         aq = new AQuery(this);
  89.     }
  90.  
  91.     @Override public boolean onCreateOptionsMenu(Menu menu) {
  92.         removePhoto.setVisible(removable);
  93.         return super.onCreateOptionsMenu(menu);
  94.     }
  95.  
  96.     @Override public boolean onOptionsItemSelected(MenuItem item) {
  97.         if (item.getItemId() == android.R.id.home) {
  98.             finish();
  99.         }
  100.         return super.onOptionsItemSelected(item);
  101.     }
  102.  
  103.     @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
  104.     @Override public void onPageScrollStateChanged(int state) {}
  105.     @Override public void onPageSelected(int position) {
  106.         getSupportActionBar().setTitle( getString(R.string.title_activity_photos, position + 1, images.size()) );
  107.     }
  108.  
  109.  
  110.     class PhotoAdapter extends PagerAdapter{
  111.  
  112.         @Override
  113.         public Object instantiateItem(ViewGroup container, int position) {
  114.             WebView webView = new WebView(ViewPagerPhotosActivity.this);
  115.             ViewPager.LayoutParams params = new ViewPager.LayoutParams();
  116.             params.width = ViewPager.LayoutParams.MATCH_PARENT;
  117.             params.height = ViewPager.LayoutParams.MATCH_PARENT;
  118.             webView.setLayoutParams(params);
  119.  
  120.             ((ViewPager)container).addView(webView, 0);
  121.             aq.id(webView).webImage(images.get(position).getPhoto().getUrl());
  122.             return  webView;
  123.         }
  124.  
  125.         @Override
  126.         public void destroyItem(ViewGroup container, int position, Object view) {
  127.             ((ViewPager)container).removeView((View)view);
  128.         }
  129.  
  130.         @Override
  131.         public boolean isViewFromObject(View view, Object object) {
  132.             return view != null && view.equals(object);
  133.         }
  134.  
  135.         @Override
  136.         public int getCount() {
  137.             return images.size();
  138.         }
  139.     }
  140.  
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement