自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (4)
  • 收藏
  • 关注

原创 Android实现横向与竖向循环控件

利用AndroidX提供的下面两个库实现了可以在横向与竖向循环滚动的控件,类似模拟实现应用中的Banner效果,代码简单。androidx.recyclerview:recyclerview:1.2.1androidx.viewpager2:viewpager2:1.0.0Github地址

2021-08-24 09:23:48 279

原创 Java Lambda表达式作为HashMap的Key异常

1.背景Android项目中遇到下面异常java.lang.IllegalArgumentException: Cannot add the same observer with different lifecycles。抛出异常的代码段如下: public void observe(LifecycleOwner owner,Observer<? super T> observer) { ... LifecycleBoundObserver wra

2021-06-30 10:33:27 456

原创 Android运行时权限分组

本文代码基于Android 10平台。可以通过下面网址查看Android源码:http://www.aospxref.com/运行时权限分组的代码链接如下:http://www.aospxref.com/android-10.0.0_r47/xref/packages/apps/PermissionController/src/com/android/packageinstaller/permission/utils/Utils.java static { PLA

2021-02-05 15:11:11 283

原创 Android中fitsSystemWindows详解

1.定义frameworks/base/core/res/res/values/attrs.xml<!-- Boolean internal attribute to adjust view layout based on system windows such as the status bar.If true, adjusts the padding of this view to leave space for the system windows. Will only take eff

2020-05-14 13:24:25 5763 1

转载 Android Studio 3.5导入AOSP编译的classes.jar

本文转载信息如下:作者:云城_404e链接:https://www.jianshu.com/p/d5c3e191865e来源:简书一、适用场景我们在写应用时可能会需要调用系统隐藏的API,这些API是我们无法直接访问的,报如下错误:此时,我们需要将系统AOSP编译生成的out/target/common/obj/JAVA_LIBRARIES/framework_interme...

2020-04-24 14:29:01 817 1

翻译 Android应用声明Open Source Licenses

本文从下面链接翻译过来:Open Source Notices包括开源须知每个开发人员都有责任适当地显示须知,以符合开源库的许可要求。 Google Play服务有时包括或依赖开源库。从11.2.0版开始,Google Play服务包含一组工具,旨在为开发人员提供一种更轻松的方式来表达其应用程序中使用的库的开源软件声明。 它包括一个Gradle插件,该插件从其POM文件中声明的所包含...

2020-02-18 16:50:36 1548

翻译 Android OpenGL ES 2.0(八)--- 索引缓冲区对象

本文从下面链接翻译过来:Android Lesson Eight: An Introduction to Index Buffer Objects (IBOs)在上一课中,我们学习了如何在Android上使用顶点缓冲对象。 我们了解了客户端内存和GPU专用内存之间的区别,以及将纹理,位置和法线数据存储在单独的缓冲区中,或者存储在一个缓冲区中的区别。在本课中,我们将学习索引缓冲区对象,并查...

2019-08-19 17:22:52 376

翻译 Android OpenGL ES 2.0(七)--- 顶点缓冲区对象

本文从下面链接翻译过来:Android Lesson Seven: An Introduction to Vertex Buffer Objects (VBOs) 在这节课中,我们将介绍如何定义和如何去使用 顶点缓冲对象(VBO)。下面是我们要讲到的几点: 1.如何定义顶点缓冲区以及利用顶点缓冲区进行渲染。 2.使用单个缓冲区打包所有的数据(比如位置,颜色, ...

2019-08-19 14:59:31 807

翻译 Android OpenGL ES 2.0(六)--- 纹理过滤

本文从下面链接翻译过来:Android Lesson Six: An Introduction to Texture Filtering 这节课,我们将介绍不同类型的纹理过滤和怎样使用它们, 包括最邻近(nearest-neighbour)过滤,双线性(bilinear)过滤, 和使用mipmap的三线性(trilinear)过滤。 你将学习如何使纹理看起来更平滑...

2019-08-16 17:07:03 714

翻译 Android OpenGL ES 2.0(五)---混合

本文从下面链接翻译过来:Android Lesson Five: An Introduction to Blending 这节课,我们来学习混合(blending)在OpenGL中的基本使用。我们来看看如何打开或关闭混合,怎样设置不同的混合模式,以及不同的混合模式如何模拟现实生活中的效果。在后面的课程中,我们还将介绍如何使用alpha通道,如何使用深度缓冲区在同一个场景中渲染半透明和...

2019-08-16 16:52:33 512

翻译 Android OpenGL ES 2.0(四)---纹理基础

本文从下面链接翻译过来:Android Lesson Four: Introducing Basic Texturing这是我们的第四个教程。在本课中,我们将添加我们在第三课中学到的内容,并学习如何添加纹理。我们将看看如何从应用程序资源中读取图像,将此图像加载到OpenGL ES中,并将其显示在屏幕。跟着我,你会立刻理解基本的纹理前提条件本系列每个课程构建都是以前一个课程为基础...

2019-08-16 14:37:05 472

翻译 Android OpenGL ES 2.0(三)---片元着色器计算光照

本文从下面链接翻译过来:Android Lesson Three: Moving to Per-Fragment Lighting欢迎来到Android的第三个教程! 在本课中,我们将学习第二课中学到的所有内容,并学习如何在片元着色器上应用相同的光照技术。 即使给简单的立方体添加漫反射光照,我们也能看到差异。假设和先决条件本系列的每节课都以前面的课程为基础。 本课程是第二课的延伸,...

2019-08-16 14:15:52 439

翻译 Android OpenGL ES 2.0(九)---法线矩阵

本文从下面链接翻译过来:第一篇 Normal Transformation第二篇 The Normal Matrix关于法线矩阵的计算方式个人觉得上面两篇文章讲得比较好,下面依次对两篇文章进行翻译,先来翻译第一篇文章。第一篇 法线变换在计算光照时,关于入射角的余弦值计算有一定的要求。它涉及到两个向量,光照的方向向量以及顶点的法线向量,并且这两个向量都是单位向量。我们来看这样一个...

2019-08-15 17:55:23 330

翻译 Android OpenGL ES 2.0(二)---环境光和漫射光

本文从下面链接翻译过来:Android Lesson Two: Ambient and Diffuse Lighting欢迎学习第二个教程。在本课中,我们将学习如何使用着色器实现Lambertian反射,也称为标准漫反射光。 在OpenGL ES2中,我们需要实现自己的光照算法,因此我们将要学习数学以及如何将它应用于场景。假设和先决条件本系列的每节课都以前面的课程为基础。在开始之前...

2019-08-15 17:55:08 768

翻译 Android OpenGL ES 2.0(一)---入门

本文从下面链接翻译过来:Android Lesson One: Getting Started这是在Android上使用OpenGL ES2的第一个教程。 在本课中,我们将逐步介绍代码,并了解如何创建OpenGL ES2上下文并绘制到屏幕上。 我们还将了解着色器是什么以及它们如何工作,以及如何使用矩阵将场景转换为您在屏幕上看到的图像。 最后,您需要在清单文件(AndroidManifest...

2019-08-15 16:57:13 758

原创 Java泛型理解

1.正常类1.1 Bean类的源码public class Bean{ private Object value; public Object getValue() { return value; } public void setValue(Object value) { this.value = value; ...

2018-12-07 18:26:05 118

原创 Android绘制点引发的思考

背景在Canvas上绘制一个点,比如(1.0f,1.0f),原本以为绘制的范围应该是[1.0f,1.0f]-[2.0f,2.0f]这么一个矩形区域,但是实际结果却是[0.5f,0.5f]-[1.5f,1.5f]这么一个矩形区域。于是联想到如果通过绘制点的方式来绘制一张图片会是什么效果呢?绘制一个点下面代码是绘制一个点的简单例子:/** * 绘制一个点 */public c...

2018-11-21 19:40:58 333

转载 Android studio编译警告:请使用 -Xlint:deprecation 重新编译

文章转载下面地址:https://blog.csdn.net/LB_fighting/article/details/53185410Android studio编译警告出现下面描述:Note: Recompile with -Xlint:deprecation for details.Note: Recompile with -Xlint:unchecked for detail...

2018-11-19 16:07:09 5241 1

转载 四种常见的 POST 提交数据方式对应的content-type取值

文章转载如下:https://www.cnblogs.com/wushifeng/p/6707248.htmlapplication/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。请求...

2018-11-17 11:10:09 453

原创 Android C,C++在Framework层日志打印

刚接触Android Framework层,还不熟悉怎么在C++或者C文件中打印日志,记录一下以后方便直接使用1.创建C或者C++文件。(main.cpp)#include &lt;utils/Log.h&gt; //引用日志的头文件#define LOG_TAG "main_log" //日志tagint main(int args,ch...

2018-11-16 09:28:59 1190

原创 Android自定义Style

1 背景介绍最近接触了一款APP,从Android5.1.1升级到Android8.1,整个APP使用的主题为”@android:style/Theme.DeviceDefault.Light”。测试在Bugzilla上提了好几个关于UI方面的Bug。研发一看就知道这些不是Bug,但是测试他们毕竟不是开发,只会看表面现象,同一个APP在不同版本Android平台上UI不一致都是Bug。要给测试...

2018-09-10 18:25:22 3547

原创 Android退出应用程序的所有Activity

关于退出所有Activity,网上有很多种,但是我遇到了一个问题:当前应用退出到后台(比如有A-&gt;B-&gt;C3个Activity),被系统给kill掉后。当又回到应用时系统会重新创建C。如果这个时候要退出所以的Activity(A,B,C),你会发现是回到了Activity(B).解决方法:1.创建一个空的Activity://NoneActivity.javap...

2018-08-30 11:21:21 245

原创 C++之类和对象

本文是按照(C++ Primer Plus(第6版))学习过来的。1.类的声明与定义   类的声明与定义最好放在不同的文件中,头文件存放类的声明,实现文件存放类的定义。比如下面的例子://Person.h 类声明的文件#include&lt;string&gt;using namespace std;class Person{public: Person(); Person(cons...

2018-04-05 22:01:29 169

原创 C++之内存模型学习篇

由于刚刚学习C++不久,就按照书籍上的资料(C++ Primer Plus(第6版))自己整理加深下印象。C++内存要弄清楚3个概念,一是存储的持续性,也就是变量在程序中能够存在多长时间;二是变量的作用域,也就是从你声明变量开始,这个变量的使用范围由多广;三是变量的链接性,通常是指该变量是否可以在其它文件中被使用。C++使用不同的方案来存储数据,这些方案的区别就在于数据保留在内存中的时间。(1)....

2018-03-16 22:30:26 212

原创 C++之函数

函数是C++的编程模块,要使用函数,必须完成下面工作:1.函数原型声明2.函数定义3.函数调用下面是一个简单的例子实现一个加法函数int add(int a,int b); //函数原型声明int main(){ int sum = add(1,2);//函数调用 return 0;}//函数定义int add(int a,int b){ return a+b;}...

2018-03-08 09:13:16 167

原创 C++的基本数据类型

C++ 提供了种类丰富的内置数据类型和用户自定义的数据类型。下表列出了我们常见的基本数据类型类型关键字长度(字节)范围布尔类型bool10到1无符号字符型unsigned char10到255字符类型char1-128到127无符号短整型unsigned short20到65535短整型short2-32768到32767无符号整型unsigned int4省略整型int4省略无符号长整型unsi...

2018-02-25 16:42:32 354

原创 C++学习之HelloWorld

1.前言   最近自己想学习C++语言,学习的东西时间一长不用的话也会搞忘记,然后呢就得又度娘查找一番。所以说准备写博客记录下来,一是作为自己以后查阅,二是让自己持之以恒的把C++学习下去。2.第一个程序   用经典的HelloWorld来书写第一个C++程序,代码如下:HelloWorld.cpp#include&lt;stream&gt;using namesapce std;int m...

2018-02-11 10:54:57 508

原创 Git提交代码使用统一的模板

git配置commit通用模板1.创建模板文件存放在计算机任何位置都可以,比如我存放在/home/crab/.gitmsg_template2.在文件.gitmsg_template中配置的message信息,比如:[user]crab[mail]xxxxxxxxx[msg ]this is your commit msg.[tel ]1234567893.配置当前用户.gitco...

2017-10-26 20:14:01 2317 2

原创 解决内存泄漏更加清楚的认识到Java匿名类与外部类的关系

理解匿名类与外部类以及方法中final参数的关系,分析Android应用程序中存在的内存泄漏

2015-04-28 19:01:30 2214 3

原创 Android TextView显示文字对齐

Android显示中文跟数字的组合实现对齐

2015-03-23 20:07:55 2898 2

原创 Android 输入框限制字符输入数

Android输入框字符数量输入限制实现方式

2015-03-20 17:53:39 1340

翻译 Making Sense of Multitouch

英文连接地址    http://android-developers.blogspot.sg/2010/06/making-sense-of-multitouch.html

2014-10-08 18:35:59 615

翻译 Android Touch Mode

原文英文链接如下:

2014-09-29 09:47:59 805

原创 Android自定义弹出菜单+动画实现

看到网上一个Demo里面弹出菜单的动画效果很好看,自己就利用工作空余时间也写了一下。具体实现如下:1 自定义一个显示Icon的ImageView,主要用来判断该ImageView是否需要放在父布局底部水平中心位置   import android.content.Context;import android.content.res.TypedArray;import android

2014-09-28 10:41:47 1601

原创 模拟Java Https双向验证

Https服务端代码:import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;import java.security.KeyManagementException;...

2014-08-25 11:42:12 2766

原创 Java打印某个方法栈中调用顺序

当你维护别人的代码时候,会发现某个方法被代码多处调用,如果你想知道该方法是从那一个方法调用过来的,可以在这个方法中打印该方法在程序运行时栈中的调用顺序。代码片段如下:import java.io.PrintWriter;import java.io.StringWriter;import java.net.UnknownHostException;/** * 打印Java某个方...

2013-10-10 18:07:24 1757

原创 Android对指定的WIFI进行处理

Android手机的设置界面有连接到指定wifi的功能,当我们的应用程序需要自己连接到一个特定设备的wifi,要如何实现呢?下面把我做一个项目关于连接指定wifi的心得与大家分享下,也许有不足的地方希望大家修正下。源代码下载链接地址:http://download.csdn.net/detail/crabisacoolboy/63337871.Android对Wifi操作的主要类是Wifi

2013-09-28 14:54:58 894 1

转载 通过Eclipse插件Bytecode Outline方便了解Java字节码

转载地址:http://www.blogjava.net/dreamstone/archive/2007/02/22/100358.html在遇到一些小问题的时候我们经常会使用Javap反编译取得字节码来分析,虽然Javap能完成这个工作,但是有两个缺点,一方面操作麻烦,需要很多步骤,一方面没有文档注释,对新手来说看起字节码来比较麻烦。这里推荐一个工具,Bytecode Outline .它是

2013-09-13 17:00:23 647

Android 裁剪图片

从Android2.3.4源码中抽取的图片裁剪功能能,并且给了一个例子如何使用裁剪功能。

2014-01-02

android_wifi_demo

Android对指定的WIFI进行一系列的操作,比如配置一个新的WIFI网络,密码输入错误判断,连接与为连接状态的处理。还有很多其他处理工作,在代码中都有相关的说明。

2013-09-28

java JDK1.6.0_41 源码

java JDK的源码,提供给程序员查看java语言基本API的实现方式。有利于程序员更好的掌握Java语言。使用方法如下: 1.点 “window”-> "Preferences" -> "Java" -> "Installed JRES" 2.此时"Installed JRES"右边是列表窗格,列出了系统中的 JRE 环境,选择你的JRE,然后点边上的 "Edit...", 会出现一个窗口(Edit JRE) 3.选中rt.jar文件的这一项:“c:\program files\java\jre_1.5.0_06\lib\rt.jar” 点 左边的“+” 号展开它, 4.展开后,可以看到“Source Attachment:(none)”,点这一项,点右边的按钮“Source Attachment...”, 选择你的JDK目录下的 “src.zip”文件 5.一路点"ok",结束。

2013-07-24

类似android联系人主界面ListView的滚动效果

该demo只是根据字母把ListView的所有item进行分段,当滚动ListView时,每个分段的标记会等到该段完全滚动得看不间了才会消失。详细代码间附件。

2013-04-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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