Android 开发
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
在开发过程中我们往往会遇到图片旁边带文字的布局,这种布局有些比较Low的开发会直接用一个ImageView和TextView,有经验的会给TextView设置DrawableLeft、DrawableRight等等属性,一个View搞定,但是这个属性设置图片是无法控制大小的,在xml里面,当然在Java代码里是可以设置的。
项目中要到图片、视频选择的功能,然后google了一下,找到Matisse,知乎的图片选择框架,用的人还挺多的,果断依赖gradle,然后开始我的踩坑之旅。
相信我们在开发过程中肯定接触过LayoutInflater,比如ListView的适配器里的getView方法里通过LayoutInflater.from(Context).inflater来加载xml布局,在Fragment里的onCreateView里面也是一样,加载布局一共三种方法。
AndroidStudio中的build.gradle中包含了这些值,compileSdkVersion和minSdkVersion还比较通俗易懂,compileSdkVersion表示当前项目的编译版本,即你想让AndroidStudio以什么SDK...
eclipse莫名其妙的bug 解决方案如下,把编译的android版本调低就可以了 调低编译版本
最近,公司有个做聚合SDK的老铁要离职了,然后它的锅就甩给我了,话说,本来开会的时候说和另一个同事一人负责半个月 哎,我是一个落魄的小开发 那好吧,App这边目前也没有啥需求,然后就接手了这位老铁的聚合SDK的项目,本来是一个月的项目交接时间,非常奇葩的一个礼拜就走人了,一点都不夸张的,代码都还没有看完就已经要去和CP对接游戏了,直接上手开干,啰嗦了这么多,还没有扯到正题,好吧,我的锅,必须通过文字来小小的抱怨一下。
1 java.lang.RuntimeException:Unable to resume activity {com.xxxx.center/com.xxxx.
对vs不是很熟,百度了一下,有的告诉你设置编码格式,还有的让你去下载一个插件ForceUTF8 ,然后都是辣鸡,并没有卵用,最后解决在控制台上方的白色区域右键选择默认值,然后选择选项,设置简体中文。
今天打算写一下Handler机制的原理及源码解析,Handler在我们的开发中用到的频率还是非常高的,同时这也是一个非常基础的知识点,但是即使是基础知识,有很多工作两三年的安卓开发依然是一知半解,搞不清楚原理,包括View、ViewGroup的事件分发及绘制流程。
应该有两个多月都没什么项目需求了,很长一段时间就是九十点钟过去公司,然后刷刷微博、看看新闻然后泡杯咖啡就这样混了一个上午,下午看看博客学习一下新技术巩固一下安卓基础,刚开始还觉得这样的日子挺好,空闲时间很多可以自己自由去学习,但是这样造成了一个很尴尬的局面就是每周的周报也不知道写什么。
运动圆环自定义View.gif 记得这个东西原来有个同事问过我,当时正在自学自定义View和属性动画这一块,对这个功能也没有写过,所以就google了一下,发了几个类似效果的github项目给朋友,今天礼拜天难得有心情写写代码,所以想想实现一下这个自定义View的效果。
这个是产品的效果图 然后实际运行的结果 那到这个需求感觉还是很简单的,让美术出了一张图,然后我把这个背景图做成了.9图,然而,并没有什么卵用,最大的原因就是background被拉伸、挤压,高度在不同的机型显示的不一样,但是图片的半圆缺角是不变的,所以想想还是写个View。
import android.content.Context; import android.content.res.TypedArray; import android.
上周五项目测试时发现一个奇怪的Bug,项目中依赖了一个第三方框架,但是在android4.0-4.4.4之间的系统中运行会直接闪退,抛出错误异常为java.lang.NoClassDefFoundError。
QQ截图20180309150706.png 正常情况下我们在真机调试程序时,如图箭头所指的位置显示的应该是该应用的主包名,但是有的时候明明打开了开发者模式,但是却无法输出日志,该位置显示的也不是应用包名,显示的是 no debuggabl...
1,新建项目添加C++支持,让Android Studio自动生成相关的配置文件 2,设置生成的.SO库名和相应的平台库 在配置build.gradle文件中,这里的build.gradle是指app模块下的build.gradle,不是整个工程的build.gradle文件。
第一次发现这问题,记录一下,在适配器里面给TextView设置一个int类型的值,然后闪退报错,DeBug模式下查看了布局和id,均没有问题,再次查看日志输出,Caused By: android.
本篇文章讲解JNI下属性的内存释放问题,众所周知,JAVA有四大引用,1,强引用2,弱引用3,软引用4,虚引用。JNI有三大引用,1,普通全局引用2,弱全局引用3,局部引用。
本篇文章讲解JNI接收处理完从Java层传递的数据后内存的同步问题。 从JAVA层传递数据给C排序 数组排序及内存同步 qsort是一个C语言的排序函数,这不是我们讨论的重点, jint * (JNICALL *GetIntAr...
本篇文章讲解如何处理JNI下返回字符串乱码 JNI代码,图内有注释 JAVA代码 代码比较简单,也不再详细说明,适合有C、C++和JNI基础的同学学习。
本篇简述如何在JNI下调用父类方法 Java层代码 Person Man C实现代码 这里讲一下如何拿到类中方法和属性的签名: 1,cmd进入命令行 2,cd 命令切到当前项目的src路径 3,javap -s -p 包名+类名(xxx.
上一篇博客写的是Java调用C、C++的例子,本篇就演示一下C、C++怎么调用Java的属性和方法。 Java代码中提供一个静态方法给C、C++调用 C、C++代码 一些具体的操作细节在第一篇博客就写的比较详细了,这里就不再重复了,值得一提的是我们这里在Java层加载的动态库(动态链接库) static{ System.
首先要明白,什么是JNI,我们做安卓开发为什么要学习JNI,学习JNI能干嘛? JNI全称Java Native Interface (Java本地接口) 那么这个所谓的Java本地接口到底是干什么的呢? 该图是JNI在JVM中所处的位置 ...
第一步,找到你的android sdk路径 QQ截图20170612233945.png 第二步,加入到环境变量CLASSPATH QQ截图20170612234346.
冒泡排序通俗的讲就是把数据源中的元素两两比对,然后改变它们的下标来达到排序效果,排序的效率一般比较简单,属于入门级算法。 冒泡排序 打印台 外层循环控制循环次数,内层循环控制比对元素的个数,因为冒泡排序是两两比对,五个元素的...
安卓多进程通信主要有四大方案:1,Activity 2,Broadcast Receiver 3,Content Prodiver 4,Service 1,Activity Intent intent = new Intent(); intent.
定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、接口、枚举、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
Java运算符大致分为逻辑运算符(&&,||,!)、算数运算符(+, -, *, / ,+=)、位运算符(^,|,&)、其他运算符(三元运算符) 不了解二进制运算的同学可以看我的另一篇有关于进制运算的 二进制运算 &(按位与) 位运算符 ...
Activity生命周期图 在此之前,我们新建一个项目,代码非常简单,两个活动之间相互跳转(本来想做GIF图的,不会~~~~(>_: onCreate(创建) I/MainActivity--->: onStart(开启,逻辑层面的可见状态...
转成二进制主要有以下几种:正整数转二进制,负整数转二进制,小数转二进制 在说明换算之前,先介绍一下次方和负次方的概念(面向新手): 一,值转化为二进制 1,正整数转二进制 在计算机中存储字节是定长的,即我们8、16...
今天看书的时候又看到了内存和缓存,之所以说又,是因为之前遇到过查过资料,但是现在又忘了(图侵删)。 所以又复习一遍,记录一下,有所纰漏的地方,欢迎指正。
观察者模式就是一个对象的状态或行为发生改变会随之影响其他对象的状态与行为,总之就是对象之间的联动,一个对象发生改变,其他对象也马上发生变化。