Android基础之图片自动滚动

本文记录了一个Android项目需求,即在网络图片长度超过屏幕时,如何实现在加载完成后自动滚动的功能。示例代码中展示了通过img.postDelayed()方法延迟3秒启动滚动效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

             最近项目中要求实现加载网络图片,当图片长度超过屏幕时,实现图片自动滚动,记录一下,代码如下:


      img.postDelayed(runnable,3000);// 项目中要求是3秒后图片再滚动

     // 如果想图片加载完就滚动

    //  img.post(runnable);

          
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        int off = scrollView.getHeight() - img.getHeight()
        if (off > 0) {
            DuLog.i(TAG, "off 大于0");
        } else {
            DuLog.i(TAG, "off 小于0");
            scrollView.scrollBy(0, 5);//这里设置每次滚动多少px
            if (scrollView.getScrollY() == Math.abs(off)) { // 滚动结束
                DuLog.i(TAG, "stop scroll");
          // Thread.currentThread().interrupt();这里记录一下,这点代码是copy别人的,原主人留了个坑,图片滚动完之后
//       这里打断线程,因为handler是在主线程中,退出这个界面就导致了ANR,找半天原因,注意一下!!!!
                  handler.postDelayed(new Runnable() { // 本项目中要求滚动结束后2秒自动滚动到顶部,无法理解pm的大脑构造
                    @Override
                    public void run() {
                        scrollView.scrollTo(0, 0);
                    }
                }, 2000);
            } else {
                DuLog.i(TAG, "scroll total" + scrollView.getScrollY());
                handler.postDelayed(this, 10);// 设置滚动速度,这里是10毫秒
            }
        }
    }
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值