一组图片的放大缩小+轮播
2017-08-24 20:00
288 查看
在MainActivity中写一个button监听:
public class MainActivity extends AppCompatActivity{
//创建一个集合装图片 private List<String> urls=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void button1(View view){ //监听
//添加图片 urls.add("http://pic4.nipic.com/20091117/3376018_110331702620_2.jpg"); urls.add("http://img1.imgtn.bdimg.com/it/u=3028702483,4182396631&fm=214&gp=0.jpg"); urls.add("http://pic.58pic.com/58pic/11/19/16/73N58PICwxg.jpg");
//MyDialog页面进入 new MyDialog(this,urls).show(); } }
//创建MyDialog类
public class MyDialog extends Dialog{//继承Dialogprivate Activity context;private List<String> urls;public MyDialog(@NonNull Activity context, List<String> urls) {super(context,R.style.dialog_theme);//在styles里写入dialog_themethis.context=context;this.urls=urls;}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.dialog_layout);//创建dialog_layout布局WindowManager windowManager = context.getWindowManager();DisplayMetrics displayMetrics = new DisplayMetrics();windowManager.getDefaultDisplay().getMetrics(displayMetrics);int widthPixels = displayMetrics.widthPixels;int heightPixels = displayMetrics.heightPixels;Window window = getWindow();WindowManager.LayoutParams attributes = window.getAttributes();attributes.x=0;attributes.y=0;attributes.width=widthPixels;attributes.height=heightPixels;window.setAttributes(attributes);ViewPager myViewpager = (ViewPager) findViewById(R.id.myviewpager);final TextView tvTitle = (TextView) findViewById(R.id.tvTitle);MyViewpagerAdapter myViewpagerAdapter = new MyViewpagerAdapter(context, urls);myViewpager.setAdapter(myViewpagerAdapter);tvTitle.setText("1/"+urls.size());myViewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}@Overridepublic void onPageSelected(int position) {tvTitle.setText(position+1+"/"+urls.size());}@Overridepublic void onPageScrollStateChanged(int state) {}});}}在styles.xml添加:
<style name="dialog_theme" parent="@android:style/Theme.Dialog"><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item></style>
在color.xml中写入:
<color name="colorBlack">#000000</color><color name="transparent">#00000000</color>
创建MyViewpager类,用来避免冲突:
public class MyViewpager extends ViewPager {public MyViewpager(Context context) {super(context);}public MyViewpager(Context context, AttributeSet attrs) {super(context, attrs);}@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {try {return super.onInterceptTouchEvent(ev);} catch (Exception e) {e.printStackTrace();return false;}}}//dialog_layout.xml中的布局:
<android.support.v4.view.ViewPagerandroid:id="@+id/myviewpager"android:layout_width="match_parent"android:layout_height="match_parent"></android.support.v4.view.ViewPager><TextViewandroid:id="@+id/tvTitle"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_alignParentBottom="true"android:layout_marginBottom="20dp"/>
//创建MyViewPagerAdapter类:
public class MyViewpagerAdapter extends PagerAdapter{private Context context;private List<String> urls;private ImageLoader imageLoader;private DisplayImageOptions options;public MyViewpagerAdapter(Context context, List<String> urls){this.context=context;this.urls=urls;}@Overridepublic int getCount() {return urls.size();}@Overridepublic boolean isViewFromObject(View view, Object object) {return view==object;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView((View) object);}@Overridepublic Object instantiateItem(ViewGroup container, int position) {PhotoView photoView = new PhotoView(context);imageLoader = ImageLoader.getInstance();File file= new File(Environment.getExternalStorageDirectory(),"Bwei");if(!file.exists())file.mkdirs();ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(context).diskCache(new UnlimitedDiskCache(file)).build();imageLoader.init(configuration);options = new DisplayImageOptions.Builder().showImageOnLoading(R.mipmap.ic_launcher).cacheOnDisk(true).build();ImageLoader.getInstance().displayImage(urls.get(position),photoView,options);container.addView(photoView);return photoView;}}
相关文章推荐
- ImageView图片轮播,放大缩小,改变图片透明度
- 让一组图片放大缩小-CSS方式
- matlab对图片进行放大和缩小
- iOS-实现图片的捏合放大与缩小
- HTML中,图片放大与缩小
- UIScrollView 放大缩小及同时切换图片
- 图片下拉缩小放大效果
- 鼠标在图片上滚动放大或者缩小图片的代码
- JS网页图片查看器(兼容IE、FF)可控制图片放大缩小移动
- Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能
- highslide使用实例,点击图片放大效果,再次点击缩小
- j2me中放大和缩小图片的方法
- 点击图片放大缩小功能
- j2me 放大缩小图片代码
- UIPinchGestureRecognizer 放大缩小图片问题
- Qt 图片放大和缩小
- 图片放大缩小并且文字与图片相对位置不变
- android图片缩小和放大Matrix
- 图片的放大缩小
- 自定义imageVIew实现圆角和圆形图,片圆形图片缩小放大正常,圆角图片放大缩小有点问题