自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

valiantMan

qq_37909114

  • 博客(47)
  • 收藏
  • 关注

原创 Android EditText的焦点无法移动到其他控件及解决方案

查询资料发现Android 8.0 EditText的直接父类TextView 中把方向键的监听屏蔽了。不再向下分发,所以我们监听不到方向键。最近需要在Android 8.0上开发功能机,碰到一个搜索的时候按方向键没有按键监听的问题。重写一个EditText,如此一来我们就可以监听到键盘方向键,愉快的完成开发工作。

2023-05-19 13:55:37 394

原创 Android 滑动按钮(开关) SwitchCompat 自定义风格

原生的SwitchCompat控件如下图,不说不堪入目,也算是不敢恭维了。从上面的xml代码来看其实只需要定制两个东西一个是thumb,另一个是track。所以我们就需要对SwitchCompat进行自定义风格,效果如下图。switch_track_style里面有两个背景如下。

2023-11-30 15:57:43 1699

原创 有规律的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 441 1

原创 Android Studio 导入framework.jar的两种方式

Android Studio 导入framework.jar的两种方式

2023-05-04 21:19:03 2913 1

原创 Android动态设置控件宽高和padding

在开发过程中我们经常需要动态设置控件的宽高和padding。以TextView为例。如下:布局代码TextView的默认宽高为包裹文字,添加了一个背景颜色设置参数后更直观看到效果<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:an...

2019-05-31 16:49:59 4862

原创 Android测试题

CEAC国家信息化中心计算机教育认证 (Android应用软件开发高级工程师)单选题1:以下哪个不是Adapter的子类接口?( 1分)()A: ListAdatperB: SpinnerAda...

2019-05-29 18:16:36 4432 3

原创 Socket连接与断开重连

Socket连接与断开重连 近期在做一个与硬件交互的项目,通过TCP/IP协议通讯。 首先来看一下Socket通信模型 思路是使用service,需要频繁的与服务端交互所以使用BindService创建绑定服务必须使用IBinder,用以提供客户端与服务交互...

2019-05-22 19:02:00 18428

原创 数据库:mysql连接navicat premium错误篇

mysql数据库连接navicat图形化工具连接报出的错误解决方案如下:1、管理员权限运行命令提示符,登陆MySQLmysql -u root -p2、修改账户密码加密规则并更新用户密码ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD ...

2019-04-27 18:14:43 1675

原创 数据库: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 124

原创 数据库: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 197

原创 布局嵌套分析之Layout Inspector工具的使用

                           Layout Inspector工具的使用如果还是直接看xml文件来看布局嵌套层数的话有必要看一下本文,使用Layout Inspector工具查看布局嵌套。使用Layout Inspector工具的步骤:1、打开方式:通过file &gt; settings &gt; key map 搜索Layout Inspector如下图...

2019-02-25 10:17:04 2302

转载 Android 基于Message的进程间通信 Messenger完全解析

        Android 基于Message的进程间通信 Messenger完全解析本文转载张鸿洋大神的基于message的进程通信 https://blog.csdn.net/lmj623565791/article/details/47017485一、概述说到Android进程间通信,大家肯定能想到的是编写aidl文件,然后通过aapt生成的类方便的完成服务端,以及客户端代...

2018-11-08 12:02:37 897

转载 HTTPS和HTTP的区别

HTTPS和HTTP的区别什么是 HTTPS?HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。你也可以说:HTTPS = HTTP + SSLHTTPS 在 HTTP 应用层的基础上使用安全套接字层作为子层。为什么需要 HTTPS ?超文本传输协议 (HTTP) 是一个用来通过互联网传输和...

2018-11-06 18:10:57 224

原创 打开别人的AS工程需要手动修改的地方

打开别人的AS工程需要手动修改的地方        在开发中避免不了使用他人的项目接着开发这类的,打开项目之前我们需要注意两个地方的配置是否和自己的项目一样。第一个地方:工程下的gradle >> buildscript >> dependencies 中的配置如我的是2.3.3,就要把这里修改成自己的相同。第二个地方:gradle文件夹 >> .properties 文件中gra

2017-09-04 14:42:20 1571 3

原创 SlidingMenu使用简析

SlidingMenu使用简析      SlidingMenu是个第三方开源库,需要使用SlidingMenu必须先下载jar包。导入到工程中。接下来,简单的介绍SlidingMenu的使用。先看效果图:打开效果图大概是这样的。1、下载SlidingMenu的jar包 点击打开链接 。把下载好的jar包复制到libs目录下。然后导入到工程中。如图:

2017-07-24 15:48:26 339

原创 SlidingPaneLayout

SlidingPaneLayout使用简析       SlidingPaneLayout是android团队在 2013 google IO 大会期间更新的。和前面的博文NavigationView使用简析效果一样。但是NavigationView能添加的样式更多,体验更好一些。如下图:(左:SlidingPaneLayout;右:NavigationView)

2017-07-24 11:16:57 687

原创 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 349

原创 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 4686

原创 材料设计NavigationView简析

材料设计NavigationView简析1、什么是NavigationView      Google在5.0之后推出NavigationView,就是在屏幕上左边或者右边滑出来的那个菜单,这个菜单整体上分为两部分,上面一部分叫做HeaderLayout,下面的那些点击项都是menu。2、简单使用     效果图:2.1首先需要添加desig

2017-07-21 16:45:32 528

原创 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 490

原创 自定义圆形时钟

自定义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 2759

原创 Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'

transformResourcesWithMergeJavaResForDebug 编译的时候出现以下问题:百度多次找到了解决办法:在build.gradle中添加一些配置就行了packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE'

2017-07-18 16:11:33 261

原创 圆形水波控件

圆形水波控件        圆形水波控件,看起来就觉得很牛b的样子。水波是利用贝塞尔曲线的原理绘制的。效果图如下:看上去是不是很牛的样子,哈哈...想都不用这是一个自定义控件,如下:public class WaveView extends View { private static final int CONTROL_S

2017-07-14 14:32:10 564

原创 代理模式

代理模式示例       先看下代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者补鞥呢直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。             代理模式的组成:      抽象目标:通过接口或者抽象声明真实角色实现的业务方法。      代理角色:实现抽象目标,是真实目标的代理,通过

2017-07-07 16:22:09 149

原创 策略模式

策略模式示例       策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以互相替换。策略模式让算法独立于使用它的客户而独立变化。抽象策略类:通常由一个借口或者抽象类实现;具体策略类:包装了相关的算法和行为;环境类:持有一个策略类的引用,最终给客户端调用。 应用场景:       1、多各类之区别在表现行为不同,可以使用策略模式,在运行时动态选择具体要

2017-07-07 10:17:49 267

原创 工厂方法模式

工厂方法模式示例       工厂方法模式(FACTORY METHOD) 是一种常用的对象创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用合方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂,具体工厂,抽象产品,具体产品。这段文字是从百度百科上copy过来的。1、抽象工厂public inte

2017-07-06 17:46:07 163

原创 观察者模式

观察者模式示例     观察者模式的广泛性想必不用本人强调了,大家都很清楚。观察者模式又称为发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察对象同时监听一个主题对象。这个主体对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。抽象主题(Subject):它把所有观察者对象的引用保存到一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一

2017-07-06 12:20:44 166

原创 单例模式

单例模式      单例模式非常常用,从字面意思就可以看出。是单个实例的意思。单例模式分两种饿汉式和懒汉式。1、饿汉式:public class SingleClass { private static SingleClass instance = new SingleClass(); public static SingleClass getInstance() ...

2017-07-05 17:16:22 166

原创 自定义点击产生涟漪效果

自定义点击产生涟漪效果      下面是效果图      1、本文以TextView为例,自定义一个RippleTextView和RippleDarwable。在RippleTextView构造方法中进行重绘public RippleTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr)

2017-07-04 16:29:21 1797

原创 简析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 281

原创 图片加载框架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 306

原创 配置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 470

原创 显示圆形图片

调用摄像头拍照设置图片为圆形       很多应用都有上传图片作为头像的功能,要么从相册中获取,要么就拍照获取。以下是一个简单的拍照案例。1、布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"

2017-06-21 11:36:54 256

原创 让ListView指定的item获取焦点

让ListView指定的item获取焦点        两个方法就设置好了:1、boolean b = listView.requestFocus();  让ListView获取到焦点,这个方法返回是Boolean类型。判断是否获取到焦点;2、listView.setSelection(position);这个方法是让ListView的position位置的item获取到焦点。

2017-06-20 16:19:03 6526 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 346

原创 RecyclerView重新得到焦点返回上次失去焦点的位置

RecyclerView焦点处理   近期在做一个TV项目,焦点的问题处理比价麻烦。在网上搜索都找不到这类处理的方法。所以分享一个处理方法给大家。重写了一个RecyclerView和FrameLayout。详情请大家去细看,我这里就不赘述。代码如下:1、布局activity_main<LinearLayout xmlns:android="http://schemas.androi

2017-06-14 18:53:13 10990 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 1151

原创 碎片的简单用法及碎片与Activity之间的通信

碎片的简单用法及碎片与Activity之间的通信  我们都知道手机界面的展示都是由Activity来完成,Acitivity特别常用。但Activity也有局限性在手机界面上显示正常,到了平板上就比较难看了。所以碎片(Fragment)就诞生了。我们也可以把碎片叫做小Activity。在Activity中嵌入两个Fragment。如下:1、布局MainActivity<Li

2017-06-08 14:29:50 1107 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 282

原创 ListView批量删除数据

ListView批量删除数据    批量删除数据特别常见,写了个简单的demo。思路是利用CheckBox标记ListView的item,然后进行批量删除。代码如下:1、布局:activity_main:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:i

2017-06-06 17:57:43 813

空空如也

空空如也

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

TA关注的人

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