移动开发
文章平均质量分 57
螃蟹变异了
这个作者很懒,什么都没留下…
展开
-
Android实现横向与竖向循环控件
利用AndroidX提供的下面两个库实现了可以在横向与竖向循环滚动的控件,类似模拟实现应用中的Banner效果,代码简单。androidx.recyclerview:recyclerview:1.2.1androidx.viewpager2:viewpager2:1.0.0Github地址原创 2021-08-24 09:23:48 · 284 阅读 · 0 评论 -
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 · 470 阅读 · 0 评论 -
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 · 288 阅读 · 0 评论 -
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 · 5831 阅读 · 1 评论 -
Android应用声明Open Source Licenses
本文从下面链接翻译过来:Open Source Notices包括开源须知每个开发人员都有责任适当地显示须知,以符合开源库的许可要求。 Google Play服务有时包括或依赖开源库。从11.2.0版开始,Google Play服务包含一组工具,旨在为开发人员提供一种更轻松的方式来表达其应用程序中使用的库的开源软件声明。 它包括一个Gradle插件,该插件从其POM文件中声明的所包含...翻译 2020-02-18 16:50:36 · 1557 阅读 · 0 评论 -
Android OpenGL ES 2.0(二)---环境光和漫射光
本文从下面链接翻译过来:Android Lesson Two: Ambient and Diffuse Lighting欢迎学习第二个教程。在本课中,我们将学习如何使用着色器实现Lambertian反射,也称为标准漫反射光。 在OpenGL ES2中,我们需要实现自己的光照算法,因此我们将要学习数学以及如何将它应用于场景。假设和先决条件本系列的每节课都以前面的课程为基础。在开始之前...翻译 2019-08-15 17:55:08 · 777 阅读 · 0 评论 -
Android OpenGL ES 2.0(九)---法线矩阵
本文从下面链接翻译过来:第一篇 Normal Transformation第二篇 The Normal Matrix关于法线矩阵的计算方式个人觉得上面两篇文章讲得比较好,下面依次对两篇文章进行翻译,先来翻译第一篇文章。第一篇 法线变换在计算光照时,关于入射角的余弦值计算有一定的要求。它涉及到两个向量,光照的方向向量以及顶点的法线向量,并且这两个向量都是单位向量。我们来看这样一个...翻译 2019-08-15 17:55:23 · 332 阅读 · 0 评论 -
Android OpenGL ES 2.0(六)--- 纹理过滤
本文从下面链接翻译过来:Android Lesson Six: An Introduction to Texture Filtering 这节课,我们将介绍不同类型的纹理过滤和怎样使用它们, 包括最邻近(nearest-neighbour)过滤,双线性(bilinear)过滤, 和使用mipmap的三线性(trilinear)过滤。 你将学习如何使纹理看起来更平滑...翻译 2019-08-16 17:07:03 · 722 阅读 · 0 评论 -
Android OpenGL ES 2.0(三)---片元着色器计算光照
本文从下面链接翻译过来:Android Lesson Three: Moving to Per-Fragment Lighting欢迎来到Android的第三个教程! 在本课中,我们将学习第二课中学到的所有内容,并学习如何在片元着色器上应用相同的光照技术。 即使给简单的立方体添加漫反射光照,我们也能看到差异。假设和先决条件本系列的每节课都以前面的课程为基础。 本课程是第二课的延伸,...翻译 2019-08-16 14:15:52 · 444 阅读 · 0 评论 -
Android OpenGL ES 2.0(四)---纹理基础
本文从下面链接翻译过来:Android Lesson Four: Introducing Basic Texturing这是我们的第四个教程。在本课中,我们将添加我们在第三课中学到的内容,并学习如何添加纹理。我们将看看如何从应用程序资源中读取图像,将此图像加载到OpenGL ES中,并将其显示在屏幕。跟着我,你会立刻理解基本的纹理前提条件本系列每个课程构建都是以前一个课程为基础...翻译 2019-08-16 14:37:05 · 477 阅读 · 0 评论 -
Android OpenGL ES 2.0(七)--- 顶点缓冲区对象
本文从下面链接翻译过来:Android Lesson Seven: An Introduction to Vertex Buffer Objects (VBOs) 在这节课中,我们将介绍如何定义和如何去使用 顶点缓冲对象(VBO)。下面是我们要讲到的几点: 1.如何定义顶点缓冲区以及利用顶点缓冲区进行渲染。 2.使用单个缓冲区打包所有的数据(比如位置,颜色, ...翻译 2019-08-19 14:59:31 · 814 阅读 · 0 评论 -
Android OpenGL ES 2.0(五)---混合
本文从下面链接翻译过来:Android Lesson Five: An Introduction to Blending 这节课,我们来学习混合(blending)在OpenGL中的基本使用。我们来看看如何打开或关闭混合,怎样设置不同的混合模式,以及不同的混合模式如何模拟现实生活中的效果。在后面的课程中,我们还将介绍如何使用alpha通道,如何使用深度缓冲区在同一个场景中渲染半透明和...翻译 2019-08-16 16:52:33 · 517 阅读 · 0 评论 -
Android OpenGL ES 2.0(一)---入门
本文从下面链接翻译过来:Android Lesson One: Getting Started这是在Android上使用OpenGL ES2的第一个教程。 在本课中,我们将逐步介绍代码,并了解如何创建OpenGL ES2上下文并绘制到屏幕上。 我们还将了解着色器是什么以及它们如何工作,以及如何使用矩阵将场景转换为您在屏幕上看到的图像。 最后,您需要在清单文件(AndroidManifest...翻译 2019-08-15 16:57:13 · 763 阅读 · 0 评论 -
Android OpenGL ES 2.0(八)--- 索引缓冲区对象
本文从下面链接翻译过来:Android Lesson Eight: An Introduction to Index Buffer Objects (IBOs)在上一课中,我们学习了如何在Android上使用顶点缓冲对象。 我们了解了客户端内存和GPU专用内存之间的区别,以及将纹理,位置和法线数据存储在单独的缓冲区中,或者存储在一个缓冲区中的区别。在本课中,我们将学习索引缓冲区对象,并查...翻译 2019-08-19 17:22:52 · 381 阅读 · 0 评论 -
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 阅读 · 0 评论 -
Android对指定的WIFI进行处理
Android手机的设置界面有连接到指定wifi的功能,当我们的应用程序需要自己连接到一个特定设备的wifi,要如何实现呢?下面把我做一个项目关于连接指定wifi的心得与大家分享下,也许有不足的地方希望大家修正下。源代码下载链接地址:http://download.csdn.net/detail/crabisacoolboy/63337871.Android对Wifi操作的主要类是Wifi原创 2013-09-28 14:54:58 · 894 阅读 · 1 评论 -
Android自定义弹出菜单+动画实现
看到网上一个Demo里面弹出菜单的动画效果很好看,自己就利用工作空余时间也写了一下。具体实现如下:1 自定义一个显示Icon的ImageView,主要用来判断该ImageView是否需要放在父布局底部水平中心位置 import android.content.Context;import android.content.res.TypedArray;import android原创 2014-09-28 10:41:47 · 1602 阅读 · 0 评论 -
Android Touch Mode
原文英文链接如下:翻译 2014-09-29 09:47:59 · 806 阅读 · 0 评论 -
Android 输入框限制字符输入数
Android输入框字符数量输入限制实现方式原创 2015-03-20 17:53:39 · 1345 阅读 · 0 评论 -
Android TextView显示文字对齐
Android显示中文跟数字的组合实现对齐原创 2015-03-23 20:07:55 · 2902 阅读 · 2 评论 -
解决内存泄漏更加清楚的认识到Java匿名类与外部类的关系
理解匿名类与外部类以及方法中final参数的关系,分析Android应用程序中存在的内存泄漏原创 2015-04-28 19:01:30 · 2218 阅读 · 3 评论 -
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 · 2322 阅读 · 2 评论 -
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 · 3554 阅读 · 0 评论 -
四种常见的 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 · 455 阅读 · 0 评论 -
Java打印某个方法栈中调用顺序
当你维护别人的代码时候,会发现某个方法被代码多处调用,如果你想知道该方法是从那一个方法调用过来的,可以在这个方法中打印该方法在程序运行时栈中的调用顺序。代码片段如下:import java.io.PrintWriter;import java.io.StringWriter;import java.net.UnknownHostException;/** * 打印Java某个方...原创 2013-10-10 18:07:24 · 1759 阅读 · 0 评论