Android
文章平均质量分 52
WangPeng朝圣之路
才华撑不起野心
展开
-
Android的事件分发机制(一)
activity的layout中嵌入MyLayout,并在其中加入自定义MyView,在三个嵌套的视图中, , 当点击这个myview时,事件的传递首先从Activity的dispatchTouchEvent(MotionEvent e)方法开始调用用switch判断每种MotionEvent输出Log,发现会响应ActionDown 也用switch判断事件并且输出Log响应Action原创 2016-03-15 22:07:31 · 247 阅读 · 0 评论 -
ffmpeg常见的数据类型以及部分结构体中的变量含义
AVFormatContext 封装格式上下文结构体,也是统领全局的结构体,保存了视频文件封装格式相关信息 iformat:输入视频的AVInputFormat nb_stream:输入视频的AVStream个数 streams:输入视频的数组 duration:输入视频的时长(以微米为单位) bit_rate:输入视频的码率 AVInputFormat 每种封装...原创 2018-04-07 22:20:27 · 516 阅读 · 0 评论 -
在使用Tinker集成到项目中Gradle进程内存报错
简单的翻译一下,就是运行dex进程时,Gradle的守护进程需要一个更大的堆内存。// 加了一句dexOptions { preDexLibraries = false //delete the already predexed libraries}//删除依赖中已经被dex的Lib文件原创 2017-03-30 21:16:25 · 236 阅读 · 0 评论 -
android 5.0之后原生webview同时用https请求不了http的资源图片解决方案
Android 5.0 用HTTPS访问HTTP的图片资源 对于5.0以下的没有影响,但是由于5.0是默认不支持mixed content的,即不支持同时加载https和http混合模式。所以要这样来:if (Build.VERSION.SDK_INT >= 21) { webSettings.setMixedContentMode(WebSettings.MIXED_CONT原创 2017-03-09 10:20:49 · 802 阅读 · 0 评论 -
sqlite no such table
在有时会在不同时刻创建数据表,这时候会创建多个OpenHelper操作数据库,有可能就会碰到no such table错误。分析原因:创建数据库的表的时候,先判断数据库名是否相同,如果数据库名相同,并且数据库的版本名也是相同的,那么就会出现后面那张要创建的表通过OpenHelper的onCreate会创建失败,因为数据库名字和数据库版本名相同,就意味只操作同一个数据库,所以只会调用先前的Ope原创 2016-07-21 02:20:50 · 4121 阅读 · 0 评论 -
AIDL
“只有当你允许来自不同的客户端访问你的服务并且需要处理多线程问题时你才必须使用AIDL”,其他情况下你都可以选择其他方法,如使用Messager,也能跨进程通讯。可见AIDL是处理多线程、多客户端并发访问的。而Messager是单线程处理。原创 2016-07-24 21:35:36 · 231 阅读 · 0 评论 -
Service的绑定中,Binder跨进程与非跨进程的区别
客户端在执行bindService的时候,成功绑定服务之后,会回调MyConnection的onServiceConnected(),并且传回了服务端的通信接口抽象类Stub,抽象类Stub是继承自Binder对象,Binder对象是IBinder的实现类。 此IBinder即服务onBind()时返回的IBinder。测试在ServiceConnection的onServiceConnect原创 2016-07-24 20:13:04 · 2147 阅读 · 0 评论 -
自定义Switch滑动开关
要自定义控件需要先继承View然后再重写两个方法,分别是onDraw方法和onMeasure(). (有时还可能会用到onLayout方法—改变该自定义控件在ViewGroup中的位置)。 //onDraw的参数是canvas: the canvas on which the background will be drawn onDraw方法:主要负责绘制图形(也可是Bitmap) 注意哦:该原创 2016-05-19 13:20:09 · 627 阅读 · 0 评论 -
ToolBar和ActionBar右边三个点的图标替换
ToolBar和ActionBar右边三个点的图标替换原创 2016-04-24 23:57:33 · 11887 阅读 · 2 评论 -
引导页圆点的滑动两种实现方式
首先看一下页面的布局: 就是通过向悬浮在viewpager上的LinearLayout里面添加ImageView, 添加是需要注意,不能将同一对象添加多次,所以每个图片都的创建然后再添加到LinearLayout里面去,在LinearLayout的最右边在放一个FrameLayout,也就是FocusImage(当前获得页面的指示器)。 方法一:用属性动画(不能实时跟随页面的滑动) 重点原创 2016-05-18 00:01:31 · 1530 阅读 · 0 评论 -
解决应用中的Dex文件方法数超过了最大值65536的上限
解决应用中的Dex文件方法数超过了最大值65536的上限原创 2016-04-25 23:07:43 · 564 阅读 · 0 评论 -
commit和executePendingTransactions的区别
commitAllowingStateLoss()替代commit()意思是说我使用的 commit方法是在Activity的onSaveInstanceState()之后调用的,这样会出错,因为onSaveInstanceState方法是在该Activity即将被销毁前调用,来保存Activity数据的,如果在保存玩状态后再给它添加Fragment就会出错。解决办法就是把co原创 2016-04-25 22:49:46 · 14110 阅读 · 0 评论 -
Android的事件分发机制(二)
接着上一篇讲,如果将Activity的dispatchTouchEvent(MotionEvent e)先写入switch判断事件并且Log输出事件类型最后返回结果return false; 这样 , 没有调用super的方法直接返回false。点击MyView后返回结果就会是这样的。 就是说不打算将事件分发下去。未完、、、转载 2016-03-15 22:31:59 · 203 阅读 · 0 评论 -
OnTouch和OnTouchEvent的区别
在许多时候需要监听事件的点击动作,android有两种方法去实现。 一种是重写OnTouchEvent方法,还一种是实现实现OnTouchListener接口里面的OnTouch方法,看看这两种方法的区别到底在哪。 发现onTouchListener的接口的优先级是要高于onTouchEvent的,假若onTouchListener中的onTouch方法返回true,说明此次事件已经被消费了原创 2016-03-16 00:48:53 · 2019 阅读 · 0 评论 -
使用 linux编译 android 平台的ffmpeg
centos版本: CentOS release 6.6 ndk版本:android-ndk-r15c-linux-x86_64.zip 下载 wget -c https://dl.google.com/android/repository/android-ndk-r15c-linux-x86_64.zipffmpeg版本: ffmpeg-2.6.9.tar.gz ,下载 wget ffmpeg....原创 2018-04-02 20:48:57 · 335 阅读 · 0 评论