240 发简信
IP属地:重庆
  • Android 事件分发 (MViewGroup MView)

    Android 事件分发 (MViewGroup MView) 1.不消费事件 2.MViewGroup onTouchEvent 返回true 消费事件 3.MVi...

  • 120
    【Android 音视频开发打怪升级:音视频硬解码篇】一、音视频基础知识

    开篇 炙手可热,望而生畏的音视频开发 时至今日,短视频App可谓是如日中天,一片兴兴向荣。随着短视频的兴起,音视频开发也越来越受到重视,但是由于音视频开发涉及知识面比较广,入...

  • 120
    Android 蓝牙开发(1)

    普通蓝牙设备官方文档 Android 平台包含蓝牙网络堆栈支持,凭借此支持,设备能以无线方式与其他蓝牙设备交换数据。应用框架提供了通过 Android Bluetooth A...

  • 厉害了,真可以

    万能命令,破解各种 VIP

    wn万能命令是一个在线工具效率平台,将各种高质量的在线工具按应用站点聚合起来,让你以方便快捷好记的方式寻找和使用各类在线工具。 浏览任意网页时,输入这个万能命令 wn.run...

  • Android WebView注入js方式总结

    Android WebView注入js方式总结 第一种 通过webview.loadUrl("javascript:")注入,如: 缺点: 会有最大字符限制,不同内核会有不同...

  • 集合知识储备

    一.HashMap VS Hashtable 1.HashMap 是非线程安全的,Hashtable 是线程安全的; 2.HashMap 是能接受null 键值对的 默...

  • Android线程池的选择纠结症

    为啥非得要线程池,new Thread().start()。用的如此的爽 1.线程池的选择主要是线程的复用,减少线程的创建和销毁带来的开销; 2.控制线程的并发数,当大量线程...

  • private void computeCurrentItemPos() {
    if (mOnePageWidth <= 0) return;
    boolean pageChanged = false;
    // 滑动超过一页说明已翻页
    if (Math.abs(mCurrentItemOffset - mCurrentItemPos * mOnePageWidth) >= mOnePageWidth) {
    pageChanged = true;
    }
    // if (pageChanged) {
    int tempPos = mCurrentItemPos;
    int offset = 0;
    if(mCurrentItemOffset % mOnePageWidth > 0.5 * mOnePageWidth){
    offset += 1;
    }
    mCurrentItemPos = mCurrentItemOffset / mOnePageWidth + offset;
    DebugLog.i(String.format("=======onCurrentItemPos Changed======= tempPos=%s, mCurrentItemPos=%s", tempPos, mCurrentItemPos));
    // }
    }

    使用RecyclerView实现Gallery画廊效果

    先贴图 要实现上面的画廊效果,传统通过ViewPager clipChildren置为false实现。网上很多教程这个不多说,现在说说用RecyclerView实现上面的效果...