android截屏recycleview,android – 以全长的方式截取RecyclerView的屏幕截图..每个项目都有一个列表...

我正在使用具有动态大小列表的recyclelerView …当我使用此方法截取每个recyclerView项目的屏幕截图时…它截取屏幕截图,但每个项目仅包含一个列表项目..即使列表项目大小&gt ; 1.

public static Bitmap getRecyclerViewScreenshot(RecyclerView view) {

int size = view.getAdapter().getItemCount();

RecyclerView.ViewHolder holder = view.getAdapter().createViewHolder(view, 0);

view.getAdapter().onBindViewHolder(holder, 0);

ArrayList bitmaps=new ArrayList<>();

holder.itemView.measure(View.MeasureSpec.makeMeasureSpec(view.getWidth(),

View.MeasureSpec.EXACTLY),

View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));

holder.itemView.layout(0, 0, holder.itemView.getMeasuredWidth(), holder.itemView.getMeasuredHeight());

Bitmap bigBitmap = Bitmap.createBitmap(view.getMeasuredWidth(), holder.itemView.getMeasuredHeight() * size,

Bitmap.Config.ARGB_8888);

Canvas bigCanvas = new Canvas(bigBi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤实现: 1. 创建一个自定义的RecyclerView.OnItemTouchListener,重写其中的onInterceptTouchEvent和onTouchEvent方法,用来捕获手势事件。 2. 在onInterceptTouchEvent方法中,获取当前手势事件,判断是否是缩放手势,如果是则返回true,表示当前事件由该自定义监听器处理。 3. 在onTouchEvent方法中,获取当前手势事件,判断是否是缩放手势,如果是则获取缩放比例,并根据比例对RecyclerView中的子元素进行缩放。 4. 在Activity或Fragment中,将自定义的RecyclerView.OnItemTouchListener设置给RecyclerView。 下面是一个简单的示例代码: ```java public class MyScaleGestureListener implements ScaleGestureDetector.OnScaleGestureListener { private float scale = 1f; @Override public boolean onScale(ScaleGestureDetector detector) { scale *= detector.getScaleFactor(); return true; } @Override public boolean onScaleBegin(ScaleGestureDetector detector) { return true; } @Override public void onScaleEnd(ScaleGestureDetector detector) { } public float getScale() { return scale; } } public class MyRecyclerViewOnItemTouchListener implements RecyclerView.OnItemTouchListener { private ScaleGestureDetector mScaleGestureDetector; private MyScaleGestureListener mScaleGestureListener; public MyRecyclerViewOnItemTouchListener(Context context) { mScaleGestureListener = new MyScaleGestureListener(); mScaleGestureDetector = new ScaleGestureDetector(context, mScaleGestureListener); } @Override public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) { mScaleGestureDetector.onTouchEvent(e); return mScaleGestureDetector.isInProgress(); } @Override public void onTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) { mScaleGestureDetector.onTouchEvent(e); float scaleFactor = mScaleGestureListener.getScale(); View childView = rv.findChildViewUnder(e.getX(), e.getY()); if (childView != null) { childView.setScaleX(scaleFactor); childView.setScaleY(scaleFactor); } } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } } // 在Activity或Fragment中设置RecyclerView.OnItemTouchListener recyclerView.addOnItemTouchListener(new MyRecyclerViewOnItemTouchListener(this)); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值