自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Langxingtianxi的专栏

然折而不挠,终不为人下

  • 博客(117)
  • 资源 (4)
  • 收藏
  • 关注

原创 刮奖效果的实现

这个效果主要还是涉及到前面提到的,关于交叉模式的知识点。 首先,需要实现这个效果,就必然要绘制3个图层,最底部是刮出来之后的图片,上面的图层是灰色背景,用来覆盖刮奖区域。还有一个图层就是在我们刮得时候,覆盖在灰色图层上的效果。public class CustomView extends View { private Paint mPaint; private Bitmap bgBi

2016-10-15 23:10:43 1472

原创 Android绘制闹钟效果

这段时间,一直在看《Android群英传》里面的内容,刚好昨天学习到2D绘图部分,自己实现了一个闹钟的效果。首先看一下,最终效果:(http://img.blog.csdn.net/20161008221945085)如果直接这样看的话,会觉得很难吧?我刚开始看的时候,也这样觉得。然后看了书中的分析,自己又想了想之后,感觉也没有那么难。一般来说,当我们要绘制一个复杂图形的时候,可以想结合现实,

2016-10-08 22:46:49 1208

原创 RecyclerView实现流式布局并添加headerview、footerview

之所以写这篇文章,是因为今天在面试的时候,被问到了。当然早在1年前,我就在项目中大量使用了RecyclerView。后来换了新的公司之后,就基本没怎么用了。然后问了怎么添加header和footer,勉强答出来了。结果人家加了一句,如果LayoutManager是流式布局,或者GridLayoutManager的话,header会出现留白的问题,怎么处理啦?这个还真没用过,所以就干脆研究了一下。

2016-09-01 21:42:08 1411

原创 面试题(一)

一、深圳远峰科技: 1、求大于n的最大质数 刚开始的时候,想了半天,到底啥叫质数,怎么表示质数。半个多小时之后,才想起来,质数的意思是只能被1和它本身整除的就是质数。 public void num(int n) { if (n == 3) { primeTV.setText("2"); return; }

2016-09-01 20:22:29 484

原创 解决ArrayList的ConcurrentModificationException

这个问题的意思,是你不能在遍历集合的时候,去修改集合。比如: for (String blackListUsername : blackListUsernames) { if (blackListUsername.startsWith("zz")) { blackListUsernames.remove(blackList

2016-07-17 12:54:47 644

原创 关于editText.setOnFocusChangeListener不起作用

今天在做项目的是,需要在edittext实现一个效果:点击的时候变亮,离开的时候变暗。所以需要设置editText.setOnFocusChangeListener        不过后来发现,不管怎么点,始终都没有效果。检查了很多地方,感觉不是自己的问题,就在网上查了一些资料。        有些说是setfocusableintouchmode这个方法的问题,去掉就可以了。然而还是无效

2016-07-13 22:35:31 6931

转载 java中常用的设计模式

1. Singleton(单例模式)作用:  保证在Java应用程序中,一个类Class只有一个实例存在。好处:由于单例模式在内存中只有一个实例,减少了内存开销。 单例模式可以避免对资源的多重占用,例如一个写文件时,由于只有一个实例存在内存中,避免对同一个资源文件的同时写操作。    单例模式可以再系统设置全局的访问点,优化和共享资源访问

2016-06-28 17:12:39 606

原创 腾讯X5内核的集成和使用

这几天,由于项目中有涉及到Egret页面,导致某些机型在4.3及以下版本无法正常加载。所以就考虑到集成腾讯X5内核,替换系统自带的webview。        关于如何集成方面,虽然X5官网 有接入指南,但个人感觉某些方面不是很详细,所以我就总结一下自己的集成步骤:        1、首先在官网下载官方demo ,在手机上运行看看能否满足自己的需求?如果不能满足的话,我还知道有另一个项目

2016-06-28 11:54:55 27261 3

转载 关于Android中内存优化的一些方法

最近在看内存优化方面的一些知识,虽然很多东西目前来说,多不能完全理解,但是在我看来,至少养成好的编码习惯是第一步:          1、尽可能少的创建对象。for(...) { A a = new A(); if (...) { list.add(a);}}改为:for(...) { if (...) { A a = new A(); list.add(a

2016-06-23 17:54:31 539

原创 Android属性动画的基本使用

android系统中目前主要支持3种动画:帧动画、补间动画、属性动画。帧动画就是将多张图片集,按照一定的顺序快速播放,就形成了动画。补间动画主要包含:缩放、渐变、平移、旋转这四种动画。但缺点在于,只是改变了控件本身的形状、位置等外部属性,点击事件等属性,仍然没有改变。所以就有了属性动画,可以说是对补间动画的增强版,不仅修正了补间动画的缺陷,还支持更多的动画。 textView1.setOnCl

2016-06-15 16:07:45 514

转载 Unable to add window -- token null is not for an application错误

Unable to add window -- token null is not for an application   第一个错误使用AlertDialog报错 You need to use a Theme.AppCompat theme (or descendant) with this activity.之解决第二个错误

2016-06-06 22:54:18 702

转载 启动Activity的各种FLAG介绍

Intent intent = new Intent(SecondActivity.this,MainActivity.class); /** * 如果在调用Context.startActivity时传递这个标记, * 将会导致任何用来放置该activity的已经存在的task里面的已经存在的ac

2016-06-01 17:23:22 776

原创 SQLite 的使用(一)

最近项目不是很忙,刚好在看代码的时候,看到了数据库这一块,感觉好长时间没用,也都忘记了,也就顺便复习一下。     由于android中google给我们提供了SQLiteOpenHelper这个类来帮助我们操作数据库,所以我们第一步自然是要继承这个类:public class DBHtlper extends SQLiteOpenHelper { public DBHtlper

2016-05-26 18:19:43 547

原创 APP被kill后重新激活的几种方案

严重声明:除非万不得已,一定不要滥用,一定不要滥用,一定不要滥用!否则非常影响用户体验,我自己也觉得有些流氓,但是由于我们应用的特殊性,一旦被销毁,非常影响用户使用,望各位同行能引以为戒!     第一种:在Application监听此方法,onTrimMemory @Override public void onTrimMemory(int level) {

2016-05-25 16:30:28 3505

转载 键盘不弹出的问题

获取焦点有两种方法:1.Java code?1EditText.requestFoucus()2.Java code?123   自动弹出软键盘有两

2016-05-20 17:45:01 750

原创 Notification的使用

public void Click(View view) { switch (view.getId()) { case R.id.text1: count++; notification = new Notification.Builder(this).

2016-05-18 17:11:07 539

原创 PopupWindow的使用、位置控制

闲来无事,索性就复习了一下PopupWindow的使用。由于一般情况下,大多数PopupWindow都是显示在控件下面,所以只呈现了一种情况,基本够用了。public class MainActivity extends AppCompatActivity { private PopupWindow popupWindow; private int xOff = 0; V

2016-05-18 11:35:24 2792

转载 对于Picasso的封装和优化方案

http://www.jianshu.com/p/093ca3c1447dhttp://www.jianshu.com/p/6b746c904a49http://www.jianshu.com/p/b3142432f4e3

2016-05-13 17:43:47 2003

原创 控制父控件不可拦截子控件事件

requestDisallowInterceptTouchEvent(true)防止viewpager和子view冲突

2016-05-12 17:02:52 3575

转载 unable to load class org.codehaus.groovy.runtime.typehandling.shorttypehandling解决方法

在把eclipse的android项目导出gradle然后导入Android Studio时经常会报 unable to load class org.codehaus.groovy.runtime.typehandling.shorttypehandling,原因是build.gradle中的123dependencies

2016-05-09 18:01:58 727

转载 android判断网络连接状态

/** * 检测网络状态 * http://www.cnblogs.com/qingblog/archive/2012/07/19/2598983.html * @return */ public boolean hasIntener() { ConnectivityManager cm = (ConnectivityManager)

2016-05-09 16:01:24 662

转载 Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication

打开studio的setting 然后Preferences -> Build, Execution, Deployment -> Instant Run -> Enable Instant Run把勾勾去掉,就可以了

2016-05-09 10:05:53 1365

转载 android中Menu的使用

Android ActionBar应用实战,高仿微信主界面的设计选项菜单OptionsMenu、上下文菜单ContextMenu、子菜单SubMenu

2016-05-07 17:52:06 492

原创 使用Spinner实现省市三级联动

首先看一下xml文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" an

2016-05-07 17:04:00 2159 2

原创 android关于轮询的一种解决方案

前段时间,由于公司项目中某个功能需要用到轮询的操作,所以参考了网上的一些资料,做了一个demo。主要方案是:AlarmManager + BroadcastReceiver + Service     首选需要获取AlarmManager,并包装要执行的服务:  /** * 开始轮询 */ public static void startPolling

2016-05-07 11:40:40 5603 2

转载 4.0后configChanges失效的解决

在之前的版本中都是在Manifest文件中设置Activity的 Android:configChanges="orientation|keyboardHidden",但是在android4.0中无效,最后发现是需要加其他一个属性:"screenSize"改成这样就可以了 : android:configChanges="orientation|keyboardHidden|screenS

2016-05-06 18:37:56 649

转载 内存回收小知识

内存不足时,Dalvak 虚拟机会根据其内存回收规则来回收内存:      1. 先回收与其他Activity 或Service/Intent Receiver 无关的进程(即优先回收独      立的Activity)因此建议,我们的一些(耗时)后台操作,最好是作成Service的形式      2.不可见(处于Stopped状态的)Activity      3

2016-05-06 17:51:18 536

转载 activity保存状态和临时数据

android中,当我们对activity进行切换时,运行在后台的activity很有可能被GC杀死。相应的,该activity里面的数据也就丢失了。所以为了保存这些临时数据,我们可以通过重写onSaveInstanceState方法来保存一些临时数据。然后在onCreate方法中,获取临时数据。    具体使用如下:public class MainActivity extends Ap

2016-05-05 18:28:57 1997 1

转载 Android Studio 运行出现 Multiple dex files define Landroid/support/annotation/AnimRes;解决方法

Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: E:\DevResources\sdk\build-tools\21.1.2\dx.bat --dex --no-optimize

2016-04-15 10:51:10 744

原创 git使用

git的配置和第一次提交到仓库 git clone url 从远程仓库克隆项目到本地 ssh keygen 生成ssh key git commit 提交代码到本地仓库 git push origin master 提交本地更改到远程仓库 git push origin master 更新远程仓库的更改,到本地

2016-04-14 10:26:43 414

原创 android自定义大括弧

前几天和公司的android大神聊天,提到他之前写了一个自定义的大括弧控件,面试的时候,难倒了很多人。当时闲着没事,也试了试,发现的确有点难度,也没做出来。刚好这两天做了一些自定义View,所以就又尝试着,写了写。发现其实也不算特别难。最后出来的效果,就是下面这4条大括弧:    @Override protected void onDraw(Canvas canvas) {

2016-03-28 10:56:15 854

原创 给TextView加背景

前几天,公司项目中,有一个界面,文字背景中2个圆圈,一大一小。也是因为一直以来,比较头疼自定义控件,所以就趁着周末。就用自定义控件的方式,又做了一次。比较简单。直接上代码: @Override protected void onDraw(Canvas canvas) { //通过比较高度和宽度取最大值作为直径 int radius =

2016-03-27 17:29:58 899

原创 android中handler的使用

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); progressBar= (ProgressBar) findViewById(R.id.pr

2016-03-14 20:28:42 521

转载 Android分包MultiDex原理详解

MultiDex的产生背景   当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt。DexOpt的执行过程是在第一次加载Dex文件的时候执行的。这个过程会生成一个ODEX文件,即Optimised Dex。执行ODex的效率会比直接执行Dex文件的效率要高很多。但是在早期的Android系统中,DexOpt有一个问题,D

2016-03-14 14:32:49 961

原创 WebView的使用

webView= (WebView) findViewById(R.id.webview); titleTV= (TextView) findViewById(R.id.title); iconIV= (ImageView) findViewById(R.id.icon); webView.loadUrl(url); WebSetti

2016-03-12 18:44:15 542

原创 JAVA线程

1、进程:正在运行中的程序每一个进程执行都有一个执行路径,或者叫控制单元。2、线程:进程中一个独立的控制单元。线程在控制着进程的执行。一个进程中至少有一个线程扩展:其实JVM本身就是一个多线程,主线程负责逻辑运算,还有一个负责垃圾回收。线程中为什么要重写run()方法?Thread类用于描述线程,该类就定义了一个功能,用于存储线程要执行的代码,run

2016-03-10 23:26:10 470

原创 Java常用算法总结

/** * 冒泡排序 * 将数组中数据两两进行比较,并交换位置。 * @param data */ public static void mpSort(int[] data) { for(int i=0;i<data.length;i++) { for(int j=data.length-1;j>i;j--) {

2016-02-26 17:48:18 986

原创 android中MVP的理解和实例

这段时间总是被问到android的架构和设计模式。所以研究了一些关于MVC和MVP的知识点。       首先MVC我们都知道,就是模型层(Model)、视图层(View)、控制层(Controller)的缩写。在android中一般我们对数据的增删改查,还有实体类就属于M,layout中的所有xml文件就属于V,所有显示layout的,比如Activity、Fragment等都属于C。 

2016-02-25 20:52:33 1451

原创 Android控件架构

android中的控件可以分为2类,分别是View、ViewGroup。而ViewGroup中又可以包含其他子View和子ViewGroup。通过ViewGroup整个界面就形成了一个树形结构。就是我们说的控件树。上层父控件负责下层子控件的测量和绘制、布局。并向下传递监听事件。我们写的FindViewById(),实际上就是以树的深度来便利控件的id,找到对应的控件。     在每棵控件树的顶

2016-02-15 22:30:47 698

原创 android中的倒计时

在Android中比如获取验证码的时候,都会有一个倒计时的按钮,提示多少秒之后重发。这种情况我们就可以使用CountDownTimer这个类,来进行倒计时的操作。     class MyCountDownTimer extends CountDownTimer { public MyCountDownTimer(long millisInFuture, long count

2016-01-15 11:44:50 766

textview添加背景

2016-03-28

自定义括弧

2016-03-28

自定义大括弧

2016-03-28

自定义控件

自定义控件

2016-03-27

空空如也

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

TA关注的人

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