- 博客(48)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android EditText的焦点无法移动到其他控件及解决方案
查询资料发现Android 8.0 EditText的直接父类TextView 中把方向键的监听屏蔽了。不再向下分发,所以我们监听不到方向键。最近需要在Android 8.0上开发功能机,碰到一个搜索的时候按方向键没有按键监听的问题。重写一个EditText,如此一来我们就可以监听到键盘方向键,愉快的完成开发工作。
2023-05-19 13:55:37
511
原创 Android 滑动按钮(开关) SwitchCompat 自定义风格
原生的SwitchCompat控件如下图,不说不堪入目,也算是不敢恭维了。从上面的xml代码来看其实只需要定制两个东西一个是thumb,另一个是track。所以我们就需要对SwitchCompat进行自定义风格,效果如下图。switch_track_style里面有两个背景如下。
2023-11-30 15:57:43
2903
3
原创 有规律的ID获取(getIdentifier的使用)
有规律的ID获取(getIdentifier的使用) 例如在碰到有规律的id时,如tv1,tv2,tv3,tv4,tv5。要么写5findViewById,要么使用框架。这里介绍getIdentifier来解决这个问题,偷点懒。private TextView[] mTextViews = new TextView[5];for (int i = 0;
2023-11-30 10:20:06
481
1
原创 Android Studio 导入framework.jar的两种方式
Android Studio 导入framework.jar的两种方式
2023-05-04 21:19:03
3422
2
原创 Android动态设置控件宽高和padding
在开发过程中我们经常需要动态设置控件的宽高和padding。以TextView为例。如下:布局代码TextView的默认宽高为包裹文字,添加了一个背景颜色设置参数后更直观看到效果<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:an...
2019-05-31 16:49:59
4927
原创 Android测试题
CEAC国家信息化中心计算机教育认证 (Android应用软件开发高级工程师)单选题1:以下哪个不是Adapter的子类接口?( 1分)()A: ListAdatperB: SpinnerAda...
2019-05-29 18:16:36
4564
3
原创 Socket连接与断开重连
Socket连接与断开重连 近期在做一个与硬件交互的项目,通过TCP/IP协议通讯。 首先来看一下Socket通信模型 思路是使用service,需要频繁的与服务端交互所以使用BindService创建绑定服务必须使用IBinder,用以提供客户端与服务交互...
2019-05-22 19:02:00
18740
原创 数据库:mysql连接navicat premium错误篇
mysql数据库连接navicat图形化工具连接报出的错误解决方案如下:1、管理员权限运行命令提示符,登陆MySQLmysql -u root -p2、修改账户密码加密规则并更新用户密码ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD ...
2019-04-27 18:14:43
1707
原创 数据库:2 Redis管理基本操作
Redis管理基本操作服客两端基本命令redis-server.exe redis.windows.conf // 使用配置启动redis服务redis-cli --stat -a 123456 // 查看服务状态redis-cli.exe // 打开客户端redis-cli --help // 查看客...
2019-04-26 14:15:41
134
原创 数据库:1 Redis数据基本操作
Redis数据基本操作常用键值和其他数据类型操作字符串set name bill //设置键值setex name 20 bill //键值20秒后过期mset age 60 gender male //一次性存储多个键值get name //不存在则返回nullmget name age //一...
2019-04-24 16:55:33
208
原创 布局嵌套分析之Layout Inspector工具的使用
Layout Inspector工具的使用如果还是直接看xml文件来看布局嵌套层数的话有必要看一下本文,使用Layout Inspector工具查看布局嵌套。使用Layout Inspector工具的步骤:1、打开方式:通过file > settings > key map 搜索Layout Inspector如下图...
2019-02-25 10:17:04
2385
转载 Android 基于Message的进程间通信 Messenger完全解析
Android 基于Message的进程间通信 Messenger完全解析本文转载张鸿洋大神的基于message的进程通信 https://blog.csdn.net/lmj623565791/article/details/47017485一、概述说到Android进程间通信,大家肯定能想到的是编写aidl文件,然后通过aapt生成的类方便的完成服务端,以及客户端代...
2018-11-08 12:02:37
907
转载 HTTPS和HTTP的区别
HTTPS和HTTP的区别什么是 HTTPS?HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。你也可以说:HTTPS = HTTP + SSLHTTPS 在 HTTP 应用层的基础上使用安全套接字层作为子层。为什么需要 HTTPS ?超文本传输协议 (HTTP) 是一个用来通过互联网传输和...
2018-11-06 18:10:57
234
原创 打开别人的AS工程需要手动修改的地方
打开别人的AS工程需要手动修改的地方 在开发中避免不了使用他人的项目接着开发这类的,打开项目之前我们需要注意两个地方的配置是否和自己的项目一样。第一个地方:工程下的gradle >> buildscript >> dependencies 中的配置如我的是2.3.3,就要把这里修改成自己的相同。第二个地方:gradle文件夹 >> .properties 文件中gra
2017-09-04 14:42:20
1590
3
原创 SlidingMenu使用简析
SlidingMenu使用简析 SlidingMenu是个第三方开源库,需要使用SlidingMenu必须先下载jar包。导入到工程中。接下来,简单的介绍SlidingMenu的使用。先看效果图:打开效果图大概是这样的。1、下载SlidingMenu的jar包 点击打开链接 。把下载好的jar包复制到libs目录下。然后导入到工程中。如图:
2017-07-24 15:48:26
344
原创 SlidingPaneLayout
SlidingPaneLayout使用简析 SlidingPaneLayout是android团队在 2013 google IO 大会期间更新的。和前面的博文NavigationView使用简析效果一样。但是NavigationView能添加的样式更多,体验更好一些。如下图:(左:SlidingPaneLayout;右:NavigationView)
2017-07-24 11:16:57
694
原创 Error running app: This version of Android Studio is incompatible with Gradle Plugin used.Try disabl
This version of Android Studio is incompatible with Gradle Plugin used android studio从2.2.1更新到2.3.3后一起的demo运行不起来,百多很多才找到解决方法。这里是作为笔记,下次就不用百度了。本文参考点击打开链接。1、禁用Instant Run2
2017-07-24 10:22:51
357
原创 android EditText长度监听
EditText长度监听 EditText长度监听使用很广泛,例如qq的密码。本文介绍两种展示方式,也不能说两种,另一种只是在外层包了design包下的TextInputLayout。废话不多说,直接来代码。1、添加design依赖compile 'com.android.support:design:24.2.1'2、布局<androi
2017-07-21 17:40:59
4735
原创 材料设计NavigationView简析
材料设计NavigationView简析1、什么是NavigationView Google在5.0之后推出NavigationView,就是在屏幕上左边或者右边滑出来的那个菜单,这个菜单整体上分为两部分,上面一部分叫做HeaderLayout,下面的那些点击项都是menu。2、简单使用 效果图:2.1首先需要添加desig
2017-07-21 16:45:32
551
原创 android Snackbar使用
Snackbar的使用土司吃多了,咱们换个口味,试试小吃条。左土司,右小吃条。小吃条是在屏幕的底部,有点不显眼。要是用小吃条,首先需要导入design包compile 'com.android.support:design:24.2.1'使用方法public void onClick(View v) { Snackbar.make
2017-07-21 12:49:02
506
原创 自定义圆形时钟
自定义ClockView 效果图:自定义Viewpublic class ClockView extends View { private float cx; private float cy; private int radius; private Paint paint; public ClockView(Conte
2017-07-20 18:25:20
2792
原创 Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'
transformResourcesWithMergeJavaResForDebug 编译的时候出现以下问题:百度多次找到了解决办法:在build.gradle中添加一些配置就行了packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE'
2017-07-18 16:11:33
266
原创 圆形水波控件
圆形水波控件 圆形水波控件,看起来就觉得很牛b的样子。水波是利用贝塞尔曲线的原理绘制的。效果图如下:看上去是不是很牛的样子,哈哈...想都不用这是一个自定义控件,如下:public class WaveView extends View { private static final int CONTROL_S
2017-07-14 14:32:10
581
原创 代理模式
代理模式示例 先看下代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者补鞥呢直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式的组成: 抽象目标:通过接口或者抽象声明真实角色实现的业务方法。 代理角色:实现抽象目标,是真实目标的代理,通过
2017-07-07 16:22:09
155
原创 策略模式
策略模式示例 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以互相替换。策略模式让算法独立于使用它的客户而独立变化。抽象策略类:通常由一个借口或者抽象类实现;具体策略类:包装了相关的算法和行为;环境类:持有一个策略类的引用,最终给客户端调用。 应用场景: 1、多各类之区别在表现行为不同,可以使用策略模式,在运行时动态选择具体要
2017-07-07 10:17:49
273
原创 工厂方法模式
工厂方法模式示例 工厂方法模式(FACTORY METHOD) 是一种常用的对象创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用合方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂,具体工厂,抽象产品,具体产品。这段文字是从百度百科上copy过来的。1、抽象工厂public inte
2017-07-06 17:46:07
172
原创 观察者模式
观察者模式示例 观察者模式的广泛性想必不用本人强调了,大家都很清楚。观察者模式又称为发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察对象同时监听一个主题对象。这个主体对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。抽象主题(Subject):它把所有观察者对象的引用保存到一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一
2017-07-06 12:20:44
174
原创 单例模式
单例模式 单例模式非常常用,从字面意思就可以看出。是单个实例的意思。单例模式分两种饿汉式和懒汉式。1、饿汉式:public class SingleClass { private static SingleClass instance = new SingleClass(); public static SingleClass getInstance() ...
2017-07-05 17:16:22
175
原创 自定义点击产生涟漪效果
自定义点击产生涟漪效果 下面是效果图 1、本文以TextView为例,自定义一个RippleTextView和RippleDarwable。在RippleTextView构造方法中进行重绘public RippleTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr)
2017-07-04 16:29:21
1818
原创 简析JNI的使用
简析JNI的使用1、创建一个JNI的demo,JNIDemo在main中创建一个jni包,在jni包中创建一个TestJNI.c的C文件,在java中创建一个JNI的类。2、接下来再到build.grald中配置ndkdefaultConfig { ... ndk{ moduleName "World"
2017-06-30 17:26:52
289
原创 图片加载框架Glide的简单使用
Glide的简单使用1、在manifest中添加权限网络权限:没有添加网络权限就无法下载;2、在build.gradle中添加glide依赖:compile 'com.github.bumptech.glide:glide:3.5.2'compile 'jp.wasabeef:glide-transformations:2.0.0'第二个是对图片处理的3、简单
2017-06-30 10:25:17
317
原创 配置NDK环境
配置NDK环境1、ndk下载https://developer.android.google.cn/ndk/downloads/index.html2、解压,配置环境。高级设置 >> 环境变量 >> path >> 把ndk解压后的路径粘贴上去3、打开android studio ,切换到project视图找到 local.properties 把ndk路径粘贴过去。如下图
2017-06-27 10:37:20
499
原创 显示圆形图片
调用摄像头拍照设置图片为圆形 很多应用都有上传图片作为头像的功能,要么从相册中获取,要么就拍照获取。以下是一个简单的拍照案例。1、布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
2017-06-21 11:36:54
265
原创 让ListView指定的item获取焦点
让ListView指定的item获取焦点 两个方法就设置好了:1、boolean b = listView.requestFocus(); 让ListView获取到焦点,这个方法返回是Boolean类型。判断是否获取到焦点;2、listView.setSelection(position);这个方法是让ListView的position位置的item获取到焦点。
2017-06-20 16:19:03
6648
4
原创 Litepal的使用
Litepal的使用 来源神马就不介绍了,自己百度。下面简单的说下使用方法。1、首先到build.gradle的module中添加依赖 compile 'org.litepal.android:core:1.5.0'2、创建一个litepal.xml文件,刚开始弄得时候,创建litepa.xml文件弄了很久,后来试了很多次创建好了,assets文件夹创建好后,
2017-06-15 18:33:10
368
原创 RecyclerView重新得到焦点返回上次失去焦点的位置
RecyclerView焦点处理 近期在做一个TV项目,焦点的问题处理比价麻烦。在网上搜索都找不到这类处理的方法。所以分享一个处理方法给大家。重写了一个RecyclerView和FrameLayout。详情请大家去细看,我这里就不赘述。代码如下:1、布局activity_main<LinearLayout xmlns:android="http://schemas.androi
2017-06-14 18:53:13
11096
4
原创 获取App包名versioncode和versionname
获取App包名versioncode和versionname 经常在应用中看到版本1.0.3类似的一串数据,这些数据怎么获取呢? public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) {
2017-06-08 14:46:10
1182
原创 碎片的简单用法及碎片与Activity之间的通信
碎片的简单用法及碎片与Activity之间的通信 我们都知道手机界面的展示都是由Activity来完成,Acitivity特别常用。但Activity也有局限性在手机界面上显示正常,到了平板上就比较难看了。所以碎片(Fragment)就诞生了。我们也可以把碎片叫做小Activity。在Activity中嵌入两个Fragment。如下:1、布局MainActivity<Li
2017-06-08 14:29:50
1137
1
原创 简易封装Fragment
简易封装Fragment 在开发中需要写多个fragment的时候可以试试以下写法,代码简洁明了。1、父Fragmentpublic abstract class BaseFragment extends Fragment { public View view; @Override public View onCreateView(LayoutInf
2017-06-08 10:28:09
297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人