Viewpage實現3D畫廊+高斯模糊
阿新 • • 發佈:2018-12-19
@Override public void data(HotNews hotNews) { if (flag == false) { List<HotNews.ResultBean> result = hotNews.getResult(); hotviewPage.setVisibility(View.VISIBLE); hotsimp.setVisibility(View.VISIBLE); hotRevyView.setVisibility(View.GONE); //3D畫廊 HotAdapter adapter = new HotAdapter(result, getActivity()); hotviewPage.setAdapter(adapter); hotviewPage.setPageMargin(20); hotviewPage.setOffscreenPageLimit(result.size()); //設定畫廊樣式 hotviewPage.setPageTransformer(true, new ZooOutPageTransformer()); //左右都有圖片 hotviewPage.setCurrentItem(0); //ViewPage左右兩邊滑動無效的處理 linHot.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return hotviewPage.dispatchTouchEvent(event); } }); //高斯 String imageUrl = result.get(0).getImageUrl(); showUrlBlur(imageUrl); } else if (flag == true) { hotviewPage.setVisibility(View.GONE); hotsimp.setVisibility(View.GONE); hotRevyView.setVisibility(View.VISIBLE); List<HotNews.ResultBean> result = hotNews.getResult(); HotItemAdapter adapter = new HotItemAdapter(getActivity(),result); LinearLayoutManager manager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); hotRevyView.setLayoutManager(manager); hotRevyView.setAdapter(adapter); } } //高斯模糊 private void showUrlBlur(String imageUrl) { try { Uri uri = Uri.parse(imageUrl); ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri) .setPostprocessor(new IterativeBoxBlurPostProcessor(2, 30)) .build(); AbstractDraweeController controller = Fresco.newDraweeControllerBuilder() .setOldController(hotsimp.getController()) .setImageRequest(request) .build(); hotsimp.setController(controller); } catch (Exception e) { e.printStackTrace(); } }
--------------------------------------------------------------------------------------------------adapter
package com.example.weiduyingyuan.mvp.adapter; import android.content.Context; import android.net.Uri; import android.support.annotation.NonNull; import android.support.v4.app.FragmentActivity; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.Toast; import com.example.weiduyingyuan.R; import com.example.weiduyingyuan.bean.HotNews; import com.facebook.drawee.view.SimpleDraweeView; import java.util.List; public class HotAdapter extends PagerAdapter{ private List<HotNews.ResultBean> list; private Context context; public HotAdapter(List<HotNews.ResultBean> list, Context context) { this.list = list; this.context = context; } @Override public int getCount() { return list.size(); } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { SimpleDraweeView simpleDraweeView = new SimpleDraweeView(context); simpleDraweeView.setScaleType(ImageView.ScaleType.CENTER); simpleDraweeView.setImageURI(Uri.parse(list.get(position).getImageUrl())); container.addView(simpleDraweeView); return simpleDraweeView; } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view == object; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View)object); } }