Android
文章平均质量分 97
我在学习Android中遇到的一些问题
Cry_Kill
坚持自己的梦想
展开
-
Android 引导页实现
Android 中引导页的实现主要有四种办法:1、Splash 界面2、ViewFlipper3、ViewPager4、ScrollView原创 2020-02-20 16:39:14 · 4570 阅读 · 0 评论 -
Android Data Binding
Data Binding 的优势有什么呢?有下面几点: - 去掉了 Activity 和 Fragment 中的 UI 相关代码 - 让 XML 变成 UI 的唯一真实来源 - 不再需要 findViewById - 性能超过了手写代码,并且更加安全,不会因为 id 错而导致 crash - 所有的 UI 修改代码保证执行在主线程原创 2020-02-16 13:12:54 · 1091 阅读 · 0 评论 -
Android 事件分发
事件分发机制就是某一个事件从屏幕传递给各个 View,由这个 View 来消费这个事件或者忽略这个事件,交与其他 View 进行消费的这个过程的控制。原创 2020-02-03 21:28:31 · 447 阅读 · 0 评论 -
Android 框架
MVC MVP MVVM 框架学习原创 2020-01-30 16:14:21 · 2641 阅读 · 0 评论 -
Java设计模式--工厂方法模式&模拟工厂模式
概念工厂模式就是实例化对象,用工厂方法来代替new操作,工厂模式包括工厂方法模式和抽象工厂模式,抽象工厂模式是工厂方法模式的拓展。意图工厂模式的意图就是定义一个接口来创建对象,但是让子类来决定哪些类需要被实例化,也就是说工厂方法把实例化的工作推迟到子类中去实现。适用场景有一组类似的对象需要创建在编码时不能预见需要创建哪种类的实例系统需要考虑扩展性,不应该依赖于产品类实例如何被创建、...原创 2018-12-08 17:34:08 · 424 阅读 · 0 评论 -
Java设计模式--策略模式
策略模式主要是抽象出不变的部分代码,然后定义算法簇将不同的算法分别封装起来,这就可以使得客户端不会受到算法改变的影响。这样对新增的需求就会由弹性支持,并不需要重构代码,只需要将该算法封装好就好了。其实官方的定义是策略模式将可变的部分从程序中抽象分离成算法接口,在该接口下分别封装一系列的算法实现,并且使得他们可以相互替换,从而导致客户端程序独立于算法的改变。策略模式的实现我们利用下面的例子来展示...原创 2018-12-06 22:27:13 · 166 阅读 · 0 评论 -
Java设计模式--单例模式
在编程中有些对象我们只需要一个,比如:配置文件、工具类、线程池、缓存、日志对象等如果我们创造出多个实例可能就会导致出很多问题:比如占用对多资源,在不同地方得到了不一致的结果等。应用场合:有些对象我们只需要一个作用:保证在整个应用程序中某个类的实例有且只有一个类型:饿汉模式,懒汉模式接下来我们就介绍一下这两种类型的编写,以及他们的有缺点:饿汉模式就是在类装载的时候就完成实例化,这样的话,...原创 2018-12-06 15:17:40 · 161 阅读 · 0 评论 -
Java设计模式--总括
设计模式就是一套被反复使用,多数人知晓的,经过分类编目的、代码设计经验的总结。使用设计模式主要的目的就是为了可重用代码、让代码更容易被他人理解。设计模式主要分为三大类,共23种:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方...原创 2018-12-06 12:08:00 · 343 阅读 · 0 评论 -
Bitmap的高速加载
Bitmap的基本概念Bitmap意为位图,是Android系统中的图像处理的最重要的类之一。通过Bitmap我们可以获取图片的相关信息获取到信息以后,可以对其进行缩放,裁剪等操作Bitmap为我们提供了对于图像文件的操作加载方法Bitmap有4种加载方法:1、字节数组:BitmapFactory.decodeByteArray()2、文件路径:BitmapFactory.de...原创 2018-12-05 16:15:28 · 275 阅读 · 0 评论 -
Android-断点续传下载
工作找完了,玩也玩完了,该好好学习了,最近我把《Java并发编程的艺术》这本书给读完了,对于并发编程以及线程池的使用还是不娴熟,我就在imooc上找到一个项目“Android-Service系列之断点续传下载“,这是我对这个项目在编写的时候记录。涉及知识点UI界面编写数据库Service广播传递数据多线程以及Handler网络这些应该是Android的基础,我就不累述了,到时候...原创 2018-11-23 21:30:39 · 6635 阅读 · 5 评论 -
图片加载框架Picasso
我写APP的时候发现要获取网络图片,最初我看别人博客自己写的时候发现成效不好,每次加载图片会有卡顿,因为自己没有用到图片的缓存,然后我在学长的建议下就选择使用图片加载框架Picasso,Picasso怎么使用的呢,其实官网上说的很明白了,接下来主要是给自己标记一下,对于以后的使用更加方便。导入Picasso库在app的gradle中的dependencies项中添加依赖implemen...原创 2018-05-10 21:37:36 · 270 阅读 · 0 评论 -
Retrofit,Picasso和Bmob的包依赖冲突
我在写我的APP的时候因为要记录信息所以使用了Bmob的数据服务,然后我需要加载网络图片所以使用了Picasso加载图片,这时候程序是可以运行的,但是当我使用Retrofit的时候,程序就再也不能运行了,AS报了下面的错误: okhttp的包依赖冲突了。我去Bmob的文档中心看更新日志的时候发现了下面这个: 从这里我们就能看出来在Bmob是有依赖okhttp的,所以会有依赖冲突,于是我...原创 2018-05-18 14:41:41 · 548 阅读 · 0 评论 -
移动后端服务-Bmob的使用(Android)
鱼和熊掌不可兼得,所以我们作为一个移动应用开发者,对于搭建服务端程序以及服务器端性能优化、功能实现我们肯定是编写的不如真正的后端应用开发者,那我们怎么办呢?现在,有了Android移动后端服务(Baas),Baas拥有我们对于后端服务所要的数据存储、消息推送、数据分析等,他全部都包含在里面,所以我们只要会使用Baas就可以很好的使用后端。(Baas供应商:国外(StackMob,Kinvey,Am...原创 2018-02-20 22:04:27 · 2238 阅读 · 2 评论 -
Android-Fragment
Fragment意为碎片,是Android四大组件之一,主要是为了支持在大屏上显示更加动态、灵活的UI,比如在平板和电视上。Fragment可以看作是嵌套的Activity,类似ActivityGroup,但是开销肯定没有ActivityGroup那么大,每一个Fragment管理着一个View,Fragment彼此之间相互独立,有自己的生命周期,这个生命周期是在Activity生命周期中的。原创 2018-01-20 13:00:19 · 345 阅读 · 0 评论 -
Android-Fragment通信
两个事物直接要有相互联系的话就必须要具备通信交流的功能,在Android中的Fragment也是需要与外界进行通信的,Fragment的通信分为两种,一种是与Activity的通信,还有一种是与另一个Fragment的通信原创 2018-01-24 22:24:49 · 2389 阅读 · 0 评论 -
ListView,GridView以及RecyclerView的使用
ListView以及GridViewListView通过字面意思我们就能理解为列表布局,GridView就是网格布局,他们的使用就是自己编写一个Adapter去设置每一个item的布局,然后在里面做各种优化就好了。最后我们把写的这个Adapter设置进ListView或者GridView就好了。普通Adapter我们将数据源传递进来,然后重写方法原创 2018-04-26 21:54:49 · 724 阅读 · 0 评论 -
ViewPager使用,Fragment的切换初始化
ViewPager使用这里说的ViewPager的使用主要是结合Fragment的使用,对于ViewPager我们也需要新建适配器,然后我们把Fragment集合传入进去,调用Adapter就好了。这部分比较简单。原创 2018-04-27 21:17:00 · 1441 阅读 · 0 评论 -
Android广播发送后无法接收
我们通常发送广播的时候是直接调用sendBroadcast(intent)方法发送的,但是我写APP的时候发现有时候这样发送广播无法接收到,之后发现如果使用LocalBroadcastManager.getInstance(context).sendBroadcast(intent);就能接收到广播了。 百度过后我认为是因为使用LocalBroadcastManager.getInstance(...原创 2018-07-10 10:50:55 · 4183 阅读 · 1 评论 -
图像分析-RGBA模型
图像分析-RGBA模型R:红色 G:绿色 B:蓝色 A:透明度色调/色相 : 物体传递的颜色饱和度:颜色的纯度亮度/明度:颜色的相对明暗程度PS:可以用PS去试验一下对这个的理解会比较好。 Android中可以通过ColorMatrix类中的方法对色调/色相,饱和度以及亮度/明度进行调节原创 2017-11-27 12:43:43 · 1143 阅读 · 0 评论 -
图像处理-矩阵变换
Android中通过矩阵来处理图像问题是非常常见的。原创 2017-11-27 13:28:45 · 12901 阅读 · 1 评论 -
图像处理-像素点分析
一张图片放大以后就会呈现一个个的点阵,每一个点就是一个像素点,通过我们对RGB的颜色配比就可以显示出不同的颜色效果了,所以说最终我们想对一个图像进行处理的话就是对一个个像素点进行处理。原创 2017-11-27 19:32:40 · 16976 阅读 · 2 评论 -
图像处理-位置变换
之前我们说过对于图片的颜色的变换,我们可以用颜色矩阵进行变化,相应的Android对于图像的位置也可以位置矩阵对位置进行变换,我们来说下Android中的位置矩阵是什么样子的格式。 我们可以发现其实他每个像素的矩阵就是3个元素值,分别是X轴坐标和Y轴坐标,以及一个1(这个1是一直都不会改变的)。然后通过矩阵乘法得到一个新的位置矩阵,然后图像就进行变换了,位置的初始矩阵和颜色的初始矩阵一样都是对原创 2018-02-10 11:23:49 · 2497 阅读 · 0 评论 -
Android权限列表
Android 权限特别多,当你需要写的时候一下子找不到所需要的权限名是什么,这里就是对Android权限的一些总结,希望对以后的编程有所帮助原创 2017-11-23 23:35:36 · 534 阅读 · 0 评论 -
【转】Android权限管理
我今天写一个程序的时候发现Android6.0以上对权限的编写进行修改,我一直都不知道为什么我ImageView的setImageBitmap方法不能成功载入图片,我检查了多遍权限的声明以及对与图像的载入的代码,但是找不到错误在哪,我就是百度了一下导致这个问题的原因,然后发现Android6.0以上对权限的编写进行修改,不能再单纯的只在AndroidManifest.xml上进行添加权限了,要在代码转载 2017-11-23 23:46:42 · 502 阅读 · 0 评论 -
把TextView转化为Bitmap以及压缩Bitmap的方法
写一个安卓小程序的时候发现我们需要显示一个气泡,气泡里面有图片和文字,这些都是动态改变的,所有我们绘制的时候就会比较复杂,但是我们把这个Bitmap用TextView表示呢,就会发现这样表示是非常方便的,只需要在布局文件中加上个TextView,然后里面的东西自己设置,然后我们在MainActivity中添加个buildTextViewBitmap方法(如下)就好了。原创 2017-11-25 11:09:00 · 2015 阅读 · 0 评论 -
即时通讯-语音录制及播放
即时通讯即时通信的要点就是消息内容不大,并且传输迅速,并且是即时到达,实时通知的。 所以我们对语音进行一些处理,语音处理的过程如下:录制录音获取数据编码保存接收数据数据解码播放录音为什么我们需要对数据进行编解码呢?原始的声音数据是非常大的,如果进行直接传输的话可能完全符合不了即时通讯的要求,所以我们要进行压缩。所需要的API原创 2017-12-01 22:09:22 · 4132 阅读 · 0 评论 -
Android-数据库
因为我现在在学数据库系统概论这门课,老师叫我们写一个对于数据库调用的小Demo,然后我就想到了可以用Android写一个记录班费开销的小程序,所以我就想借这个时机来对Android中数据库的运用来做一个记录以及复习。言归正传Android 为了让我们能够更加方便地管理数据库,专门提供了一个SQLiteOpenHelper 帮助类(抽象类),借助这个类就可以非常简单地对数据库进行创建和升级。数据库的创原创 2017-12-09 15:38:02 · 820 阅读 · 0 评论 -
Android-美化控件
我们要进行控件的美化我们就要使用<shape>和<selector>原创 2017-12-21 23:33:11 · 2228 阅读 · 0 评论 -
Android-XXXFragment
Google在SDK中已经帮我们封装好了一些我们可以使用的特殊的Fragment,一般的Fragment的使用我在我前面的那个博客中写了,传送门:戳这里ListFragment如果我们想在一个Fragment中仅仅展示一个列表的话,我们可以在Fragment中定义一个ListView,然后直接调用这个Fragment就好了,还有一种就是Google的sdk中已经帮我们提供了一个ListFragmen原创 2018-01-21 21:57:29 · 313 阅读 · 0 评论 -
Android7.0导致Uri.fromFile(File)报错
我在学习Android中Camera的时候发现,如果我们想要原图,直接读取图片位置显示的时候程序直接崩溃了,我发现报了下面这个错误: android.os.FileUriExposedException: file:///storage/emulated/0/temp.png exposed beyond app through ClipData.Item.getUri()原创 2018-02-04 18:59:51 · 3215 阅读 · 0 评论 -
Android-异常集
对于我们编写程序来说,现如今有很多的手机系统都是基于安卓系统开发的,所以就会造成安装Android系统的手机版本和设备有着很多差异,于是乎就会有在模拟器上运行良好的程序安装到某款手机上出现崩溃的现象,但是我们没有那个精力去把所有的手机型号都试一遍,所以当我们把程序发布以后,如果程序存在奔溃的现象,我们作为开发者要及时的获取到导致奔溃的信息,然后在之后更新的版本把这个Bug修复原创 2018-02-24 18:02:07 · 243 阅读 · 0 评论 -
获取系统服务
在很多情况下我们需要获取到系统提供的服务去做一些操作,但是要通过getSystemService传入什么参数以达到什么效果呢?下面就来说下传入的参数吧。原创 2018-04-06 22:49:58 · 517 阅读 · 0 评论 -
CMD命令行下ADB命令显示不是内部或外部命令,也不是可运行程序和批处理文件的解决办法
在Android开发中我们会用到ADB命令行,但是我第一次用的时候发现cmd中输入adb命令显示的是‘adb’不是内部或外部命令,也不是可运行程序和批处理文件。怎么办呢? 其实很简单,我们只要找到sdk目录下的platform-tools文件夹,打开以后把adb.exe,AdbWinApi.dll以及AdbWinUsbApi.dll三个文件拷贝到你对应的cmd起始的文件目录下就好了。如图:原创 2018-04-07 16:30:32 · 1837 阅读 · 0 评论 -
Android-APP内存优化
为什么要进行内存优化APP运行内存限制,OOM导致APP崩溃APP性能:流畅性、响应速度和用户体验原创 2018-04-09 14:27:10 · 4994 阅读 · 0 评论 -
Android APP的禁用横竖屏切换
写音乐播放器的时候发现,如果不对横竖屏切换进行处理的话,会给予用户不好的体验。 因为默认情况下,Android APP的界面会随着手机方向的改变而改变,当手机处于竖屏状态,APP的界面也处于竖屏状态,而当手机处于横屏状态,APP也会自动切换到横屏状态。一般情况下APP的界面都是为竖屏设计的,一旦自动切换到横屏,界面可能就无法直视了。而且每次屏幕方向切换,当前的页面都会销毁并重新创建。在And...原创 2018-06-02 15:03:49 · 3410 阅读 · 0 评论 -
AndroidStudio无错误但所有方法提示
我今天在使用AndroidStudio的时候,电脑突然蓝屏,重启以后AndroidStudio的所有方法提示都报错,但是我代码是没有问题的,然后我就试过重启AS,重启电脑,Clean Project,这些方法统统没有用,然后我百度了一下,发现清除缓存后就好了。 File–>Invalidata Caches/Restart ...原创 2018-06-08 23:44:15 · 1205 阅读 · 0 评论 -
Android登录状态记录
我在写音乐播放器的登录过程中发现,如果每次你打开app都需要重新登录是件多麻烦的事情呀,这关乎用户的体验的。其实在Android中想要保存原有数据是很容易的,主要有下面的几种方法:通过文件存储我们通过Java的输入输出流对我们想要存储的数据在程序结束的时候写入一个文件中,再在下一次启动的时候去判断文件是否存在,如果存在就读取,然后再去判断信息能否使用,就可以实现登录状态的记录。 (PS:...原创 2018-06-15 20:30:18 · 6756 阅读 · 2 评论 -
常用 Git 命令
git的使用在维护自己代码上是很重要的,之前我只会通过AndroidStudio上通过图形化的界面来使用,就是把本地的代码提交到GitHub上去。这些功能都能通过指令进行操作,而且指令操作更加的方便,而且更加的细致。 (未来使用到了以后会持续进行详细指令代表的参数进行更新。) 对于我们日常的使用git指令的话我们其实就要掌握下面6个命令就好了: Workspace:工作区 I...原创 2018-07-05 22:03:47 · 240 阅读 · 0 评论 -
Android通过SharedPreferences保存List数据
如果我们想保存List数据的话,其实最简单的方法就是将List遍历一遍,再把每一个对象里面的数据放入SQLite中,但是如果不想这样写的话有什么办法呢,如果数据量并不大的情况下,我们就可以直接使用SharedPreferences来保存信息,但是SharedPreferences只能保存Map类型的数据,所以我们要将List中的数据(普通类型,自定义类型)通过Gson的toJson方法转换为Jso...原创 2018-07-10 21:02:39 · 3990 阅读 · 0 评论 -
Android 设置setClickable没有作用
今天我我在写BottomDialog的时候发现我设置的setClickable方法没有作用了,无论怎么样都是显示xml中的配置,我查阅资料发现android:setClickable方法一定要放在setOnClickListener事件之后,以为在setOnClickListener的时候会去重写View,因为默认的setClickable为true,所以我们一定要在setOnClickListe...原创 2018-07-12 22:34:00 · 2796 阅读 · 0 评论