原创
文章平均质量分 62
valiant_勇哥
这个作者很懒,什么都没留下…
展开
-
Android EditText的焦点无法移动到其他控件及解决方案
查询资料发现Android 8.0 EditText的直接父类TextView 中把方向键的监听屏蔽了。不再向下分发,所以我们监听不到方向键。最近需要在Android 8.0上开发功能机,碰到一个搜索的时候按方向键没有按键监听的问题。重写一个EditText,如此一来我们就可以监听到键盘方向键,愉快的完成开发工作。原创 2023-05-19 13:55:37 · 497 阅读 · 0 评论 -
Android Studio 导入framework.jar的两种方式
Android Studio 导入framework.jar的两种方式原创 2023-05-04 21:19:03 · 3345 阅读 · 2 评论 -
布局嵌套分析之Layout Inspector工具的使用
Layout Inspector工具的使用如果还是直接看xml文件来看布局嵌套层数的话有必要看一下本文,使用Layout Inspector工具查看布局嵌套。使用Layout Inspector工具的步骤:1、打开方式:通过file > settings > key map 搜索Layout Inspector如下图...原创 2019-02-25 10:17:04 · 2370 阅读 · 0 评论 -
SlidingPaneLayout
SlidingPaneLayout使用简析 SlidingPaneLayout是android团队在 2013 google IO 大会期间更新的。和前面的博文NavigationView使用简析效果一样。但是NavigationView能添加的样式更多,体验更好一些。如下图:(左:SlidingPaneLayout;右:NavigationView)原创 2017-07-24 11:16:57 · 691 阅读 · 0 评论 -
材料设计NavigationView简析
材料设计NavigationView简析1、什么是NavigationView Google在5.0之后推出NavigationView,就是在屏幕上左边或者右边滑出来的那个菜单,这个菜单整体上分为两部分,上面一部分叫做HeaderLayout,下面的那些点击项都是menu。2、简单使用 效果图:2.1首先需要添加desig原创 2017-07-21 16:45:32 · 534 阅读 · 0 评论 -
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 · 356 阅读 · 0 评论 -
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 阅读 · 0 评论 -
RecyclerView重新得到焦点返回上次失去焦点的位置
RecyclerView焦点处理 近期在做一个TV项目,焦点的问题处理比价麻烦。在网上搜索都找不到这类处理的方法。所以分享一个处理方法给大家。重写了一个RecyclerView和FrameLayout。详情请大家去细看,我这里就不赘述。代码如下:1、布局activity_main<LinearLayout xmlns:android="http://schemas.androi原创 2017-06-14 18:53:13 · 11078 阅读 · 4 评论 -
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 · 4726 阅读 · 0 评论 -
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 · 500 阅读 · 0 评论 -
单例模式
单例模式 单例模式非常常用,从字面意思就可以看出。是单个实例的意思。单例模式分两种饿汉式和懒汉式。1、饿汉式:public class SingleClass { private static SingleClass instance = new SingleClass(); public static SingleClass getInstance() ...原创 2017-07-05 17:16:22 · 172 阅读 · 0 评论 -
SlidingMenu使用简析
SlidingMenu使用简析 SlidingMenu是个第三方开源库,需要使用SlidingMenu必须先下载jar包。导入到工程中。接下来,简单的介绍SlidingMenu的使用。先看效果图:打开效果图大概是这样的。1、下载SlidingMenu的jar包 点击打开链接 。把下载好的jar包复制到libs目录下。然后导入到工程中。如图:原创 2017-07-24 15:48:26 · 343 阅读 · 0 评论 -
打开别人的AS工程需要手动修改的地方
打开别人的AS工程需要手动修改的地方 在开发中避免不了使用他人的项目接着开发这类的,打开项目之前我们需要注意两个地方的配置是否和自己的项目一样。第一个地方:工程下的gradle >> buildscript >> dependencies 中的配置如我的是2.3.3,就要把这里修改成自己的相同。第二个地方:gradle文件夹 >> .properties 文件中gra原创 2017-09-04 14:42:20 · 1587 阅读 · 3 评论 -
Android测试题
CEAC国家信息化中心计算机教育认证 (Android应用软件开发高级工程师)单选题1:以下哪个不是Adapter的子类接口?( 1分)()A: ListAdatperB: SpinnerAda...原创 2019-05-29 18:16:36 · 4542 阅读 · 3 评论 -
Android动态设置控件宽高和padding
在开发过程中我们经常需要动态设置控件的宽高和padding。以TextView为例。如下:布局代码TextView的默认宽高为包裹文字,添加了一个背景颜色设置参数后更直观看到效果<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:an...原创 2019-05-31 16:49:59 · 4926 阅读 · 0 评论 -
Socket连接与断开重连
Socket连接与断开重连 近期在做一个与硬件交互的项目,通过TCP/IP协议通讯。 首先来看一下Socket通信模型 思路是使用service,需要频繁的与服务端交互所以使用BindService创建绑定服务必须使用IBinder,用以提供客户端与服务交互...原创 2019-05-22 19:02:00 · 18697 阅读 · 0 评论 -
数据库: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 · 206 阅读 · 0 评论 -
数据库:mysql连接navicat premium错误篇
mysql数据库连接navicat图形化工具连接报出的错误解决方案如下:1、管理员权限运行命令提示符,登陆MySQLmysql -u root -p2、修改账户密码加密规则并更新用户密码ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD ...原创 2019-04-27 18:14:43 · 1701 阅读 · 0 评论 -
数据库: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 · 132 阅读 · 0 评论 -
工厂方法模式
工厂方法模式示例 工厂方法模式(FACTORY METHOD) 是一种常用的对象创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用合方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂,具体工厂,抽象产品,具体产品。这段文字是从百度百科上copy过来的。1、抽象工厂public inte原创 2017-07-06 17:46:07 · 170 阅读 · 0 评论 -
策略模式
策略模式示例 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以互相替换。策略模式让算法独立于使用它的客户而独立变化。抽象策略类:通常由一个借口或者抽象类实现;具体策略类:包装了相关的算法和行为;环境类:持有一个策略类的引用,最终给客户端调用。 应用场景: 1、多各类之区别在表现行为不同,可以使用策略模式,在运行时动态选择具体要原创 2017-07-07 10:17:49 · 272 阅读 · 0 评论 -
让ListView指定的item获取焦点
让ListView指定的item获取焦点 两个方法就设置好了:1、boolean b = listView.requestFocus(); 让ListView获取到焦点,这个方法返回是Boolean类型。判断是否获取到焦点;2、listView.setSelection(position);这个方法是让ListView的position位置的item获取到焦点。原创 2017-06-20 16:19:03 · 6609 阅读 · 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 · 1171 阅读 · 0 评论 -
碎片的简单用法及碎片与Activity之间的通信
碎片的简单用法及碎片与Activity之间的通信 我们都知道手机界面的展示都是由Activity来完成,Acitivity特别常用。但Activity也有局限性在手机界面上显示正常,到了平板上就比较难看了。所以碎片(Fragment)就诞生了。我们也可以把碎片叫做小Activity。在Activity中嵌入两个Fragment。如下:1、布局MainActivity<Li原创 2017-06-08 14:29:50 · 1120 阅读 · 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 · 295 阅读 · 0 评论 -
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 · 833 阅读 · 0 评论 -
Buttion状态变化背景跟着变化
Buttion状态变化背景跟着变化 应用中经常可以看到,按钮什么的在被按下的状态时背景会变化。自定义一些属性就可以达到效果。Android提供了灵活的绘制选择机制,可根据视图状态转变视图外观。每个状态通过一个单独的部分而存在。例如:在正常、禁用、按下、高亮状态下的按钮有着不同的背景颜色。请看下面的代码示例: <item android:drawable="@drawab原创 2017-06-06 15:48:44 · 577 阅读 · 0 评论 -
跳转到应用商城App详情页
跳转到应用商城App详情页应用升级好多都会跳转到应用商城进行升级,写个博客巩固一下,也方便大家。这个demo的布局就一个Button。MainActivitypublic class MainActivity extends AppCompatActivity { private Button btn1; @Override protected vo原创 2017-06-06 11:30:13 · 1507 阅读 · 0 评论 -
多语言切换
android的多语言切换项目中应用到了多语言切换,巩固一下。贴上代码大家一起学习。废话不多说直接上代码...1、添加多语言在res >> values >> 下默认有个strings,需要多种语言就来创建几个strings,values右键 new 一个 values res file >> File Name:就是strings >>Directory name:比如原创 2017-05-25 15:59:50 · 401 阅读 · 0 评论 -
本地视频播放
使用mediaPlayer+surfaceView播放视频原创 2017-04-08 12:01:48 · 347 阅读 · 0 评论 -
简析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 · 288 阅读 · 0 评论 -
显示圆形图片
调用摄像头拍照设置图片为圆形 很多应用都有上传图片作为头像的功能,要么从相册中获取,要么就拍照获取。以下是一个简单的拍照案例。1、布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"原创 2017-06-21 11:36:54 · 262 阅读 · 0 评论 -
图片加载框架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 · 315 阅读 · 0 评论 -
自定义点击产生涟漪效果
自定义点击产生涟漪效果 下面是效果图 1、本文以TextView为例,自定义一个RippleTextView和RippleDarwable。在RippleTextView构造方法中进行重绘public RippleTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr)原创 2017-07-04 16:29:21 · 1809 阅读 · 0 评论 -
自定义圆形时钟
自定义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 · 2791 阅读 · 0 评论 -
代理模式
代理模式示例 先看下代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者补鞥呢直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式的组成: 抽象目标:通过接口或者抽象声明真实角色实现的业务方法。 代理角色:实现抽象目标,是真实目标的代理,通过原创 2017-07-07 16:22:09 · 154 阅读 · 0 评论 -
观察者模式
观察者模式示例 观察者模式的广泛性想必不用本人强调了,大家都很清楚。观察者模式又称为发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察对象同时监听一个主题对象。这个主体对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。抽象主题(Subject):它把所有观察者对象的引用保存到一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一原创 2017-07-06 12:20:44 · 174 阅读 · 0 评论 -
配置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 · 485 阅读 · 0 评论 -
圆形水波控件
圆形水波控件 圆形水波控件,看起来就觉得很牛b的样子。水波是利用贝塞尔曲线的原理绘制的。效果图如下:看上去是不是很牛的样子,哈哈...想都不用这是一个自定义控件,如下:public class WaveView extends View { private static final int CONTROL_S原创 2017-07-14 14:32:10 · 578 阅读 · 0 评论 -
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 · 358 阅读 · 0 评论