androoid 渐变背景动画实现

在安卓里面,动画的背景色渐变(比如又红色变为蓝色)是依靠属性动画来完成的,属性动画大部分情况下是来实现View的运动动画的,因为View的背景也是View的属性之一,所以属性动画自然也就可以让view的背景产生渐变的效果,代码如下:   View v = ...;//实例化一个View pr...

2018-10-14 07:16:56

阅读数 24

评论数 0

Android高级进阶书籍推荐

中级进阶推荐看一下以下这几本书: 《Android从入门到精通(附光盘)》 明日科技 编 《第一行代码2 Android(第二版)》 郭霖 著 《Android开发进阶 从小工到专家 》何红辉 著 《Android进阶之光 》刘望舒 著 《Android开发艺术探索》 任玉刚 著 《Androi...

2018-08-31 13:55:26

阅读数 327

评论数 0

Android图片压缩方法

android中图片是以bitmap形式存在的,那么bitmap所占内存,直接影响到了应用所占内存大小,首先要知道bitmap所占内存大小计算方式:图片长度 x 图片宽度 x 一个像素点占用的字节数以下是图片的压缩格式:其中,A代表透明度;R代表红色;G代表绿色;B代表蓝色。ALPHA_8 表示8...

2018-03-22 16:29:05

阅读数 85

评论数 0

App性能优化小建议

导语安卓大军浩浩荡荡,发展已近十个年头,技术优化日异月新,如今Android 8.0 Oreo 都发布了,Android系统性能已经非常流畅了。但是,到了各大厂商手里,改源码自定系统,使得Android原生系统变得鱼龙混杂,然后到了不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑...

2018-03-16 11:50:28

阅读数 486

评论数 0

Gc垃圾回收算法总结

Java虚拟机(JVM)导语:     JVM(Java Virtual Machine)即Java虚拟机,它可以通过类加载器把Class文件加载到自己运行时内存中去执行的虚拟机。虚拟机是运行在操作系统中的,而进程又是操作系统的执行单位,所以当java虚拟机运行的时候,它就是操作系统中的进程实例单...

2018-03-16 11:30:52

阅读数 108

评论数 0

Gc回收机制和回收算法解析

前言GC(Garbage Collection),和面向对象一样是java语言的一大特性之一,有了它,不用再像c/c++那样麻烦且频繁地free()和delete()。垃圾回收机制主要作用于java堆(Heap),也就是jvm用于存放对象实例的地方,所以很多时候我们也把java堆成为GC堆。Jav...

2018-03-16 11:24:35

阅读数 833

评论数 0

hashmap排序问题

用的最多的HashMap,不保证映射的顺序,特别是它不保证该顺序恒久不变。LinkedHashMap,维持元素的插入顺序。TreeMap中有一个传入比较器的构造函数, Map中的元素可按此比较器进行排序。  以上3个知识点,前2个作为复习,最后一个才是本次使用的重点。要想改变TreeMap的默认比...

2018-03-14 16:50:35

阅读数 451

评论数 1

Java 查找两个集合中的相同元素和不同元素

1简单元素的查找一、找到2个集合中相同和不同的元素本文分享的示例代码实现提取2个集合中相同和不同的元素此处需要使用Collection集合所提供的一个方法:removeAll(Cellection list),removeAll方法用于从列表中移除指定collection中包含的所有元素。语法 r...

2018-03-13 10:58:11

阅读数 11383

评论数 1

Eventbus接不到消息的处理办法

 最近积累了好多问题和学习记录知识,但是最近公司项目实在太忙,抽不开身,后面有时间尽量都补上,今天先记录一个遇到的小问题:eventbus无法接收到消息我仔细查看了消息体和订阅方法,都没找到问题,那么应该是我订阅注册过程的问题了,经过log日志打印终于找到了问题所在:eventbus普通的订阅事件...

2018-03-04 22:24:50

阅读数 1558

评论数 1

HashMap的工作原理

HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚...

2017-12-07 16:35:56

阅读数 55

评论数 0

java中的WeakReference

java语言中为对象的引用分为了四个级别,分别为 强引用 、软引用、弱引用、虚引用。 本文只针对java中的弱引用进行一些分析,如有出入还请多指正。 在分析弱引用之前,先阐述一个概念:什么是对象可到达和对象不可到达状态。 其实很简单,我举个例子: 现在有如下两个类class A class...

2017-09-14 11:56:37

阅读数 125

评论数 0

Android7.0 7.1 popupwindow showAsDropDown 显示异常解决办法

Android7.0 popupwindow showAsDropDown在屏幕上方弹出解决方法,通过版本控制解决,这属于Android7.0代码的bug 新增:7.1版本问题修复。 public static void showAsDropDown(PopupWindow pw, V...

2017-09-12 17:34:52

阅读数 297

评论数 0

WebView加载网页不显示图片解决办法

于大家来讲WebView肯定很熟悉,因为我们在日常开发中经常用到它。所以对于它的一些基本用法我就不在这啰嗦了,直接进入正题。 我遇到的问题就是在使用WebView加载网页的时候图片不显示(我手机系统是5.1.1),当时出现这个问题我就想当然的以为,是不是给WebView少设置的什么东西。然后...

2017-09-12 11:13:44

阅读数 144

评论数 0

android 7.0 适配

项目运行两个礼拜了,相机也在7.0以下运行的完美,突然早上同事拿他的7.0手机给我说 这是一个大bug.我一看调用相机直接崩溃。报的错误如下图: 接着我以为是我的文件路径错误,找了老半天没发现问题,仔细想想不太可能了。于是乎,开始求助各大网友了。 解决方案: 1、(推荐)7.0之后你...

2017-08-28 16:24:42

阅读数 210

评论数 0

Android GridView设置item的高度与宽度相等、GridView条目宽高相同

自定义View,继承RelativeLayout或者LinearLayout,重写onMeasure()方法,代码如下: public class SquareLayout extends RelativeLayout { public SquareLayout(Context con...

2017-08-28 16:14:52

阅读数 344

评论数 0

java常用23种设计模式

一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、...

2017-07-28 11:16:23

阅读数 195

评论数 0

Android 不依赖activity的全局悬浮窗实现

Android悬浮窗实现  实现基础 Android悬浮窗实现使用WindowManager ,WindowManager介绍   通过Context.getSystemService(Context.WINDOW_SERVICE)可以获得 WindowManager对象。 每一个Window...

2017-07-20 10:01:15

阅读数 12090

评论数 0

Surfaceview的绘制与应用

1.surfaceview与view的区别 Android 提供了view进行视图的绘制,可以满足大部分的会图需求,但在有些时候却是心有余而力不足。我们知道,view通过刷新来绘制视图。Android系统通过vsync信号来进行屏幕的绘制。刷新的时间间隔为16毫秒。如果在16毫秒内完成了索要刷新...

2017-07-13 16:12:04

阅读数 156

评论数 0

requestLayout、invalidate与postInvalidate的区别与使用场景分析

这篇文章将详细讲述与view自定义三大工作流程密切相关的两个方法,分别是requestLayout和invalidate,如果对Viwe的三个工作流程不熟悉的读者,可以先看看view的绘制流程。 http://blog.csdn.net/qq_28273051/article/details/5...

2017-07-13 10:01:36

阅读数 208636

评论数 0

android中invalidate()的自动清屏含义以及屏幕刷新

invalidate()是用来刷新View的,必须是在UI线程中进行工作。比如在修改某个view的显示时,调用invalidate()才能看到重新绘制的界面。invalidate()的调用是把之前的旧的view从主UI线程队列中pop掉。  对于屏幕刷新有以下集中情况可以考虑:  1....

2017-07-13 09:42:16

阅读数 424

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭