自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

彭文涛的博客

不积跬步,无以至千里

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

转载 Error:warning: Ignoring InnerClasses attribute for an anonymous inner class

今天项目发布时遇到了这个问题,在低版本设备上面死活发布不上去,还有打包也打不成功,折腾了好长一段时间,网上大部分给出的解决方案都是说在工程的混淆配置文件 proguard-rules.pro 中加入下面这句代码即可:-keepattributes EnclosingMethod但是尝试之后还是不行,发布不了,最后使用这种方式解决了,添加之后可以正常发布在主项

2016-11-15 22:33:55 587

原创 百度定位SDK只定位一次以及系统没有出现位置服务图标的解决

这是个巨大的坑,因为官方文档没说要在Mainfest里面声明一个服务,导致我的定位一直就只有一次,而且任务栏也没有出现定位的图标。后来发现原来要在Mainfest文件加入以下声明:<serviceandroid:name="com.baidu.location.f"android:enabled="true"android:process=":remote"></service>

2016-10-12 22:49:46 2652 2

原创 在MapView上面添加浮动控件的方法

最近在做一个跑步的APP,需要用到百度地图的SDK。然后在写UI布局的时候需要在地图上面浮动显示控件按钮。用了很多方法,也不如意,最后发现原来直接用RelativeLayout就可以做出这种效果。代码:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

2016-07-31 22:43:25 4681 1

原创 解决百度地图Fragment切换黑屏问题

今天在用TabHost+Fragment切换带有百度地图的TAB时会有黑屏的状况,在一开始网上找了很多方法都解决不了,这个问题好像已经由来已久了。但是在官方论坛找到了解决办法,就是要把mapview改成TextureMapView,问题就解决了。

2016-07-31 01:01:23 4544 8

原创 Error: Execution failed for task ':app:clean'. Unable to delete file问题解决

Error:Execution failed for task ':app:packageDebug'.> Failed to create 'D:\andriod\RunJ\app\build\outputs\apk\app-debug-unaligned.apks': 拒绝访问。Error: Execution failed for task ':app:clean'. Unable

2016-07-30 20:07:54 3025

转载 Android-Parcelable理解与使用(对象序列化)

http://my.oschina.net/zhoulc/blog/172163parcel定义介绍:    Android提供了一种新的类型:parcel(英文解释:包裹,小包),本类用来封装数据的容器,封装后的数据可以通过Intent或IPC传递,除了基本类型外,只有实现了Parcelable接口的类才能放入parcel中。    parcel一般都用在Binder通信

2016-07-16 18:25:19 329

原创 getHeight()和getMeasuredHeight()的区别

getMeasuredHeight()获取测量完的高度,只要在onMeasure方法执行完,就可以它获取到宽高,在自定义控件内部多使用这个使用view.measure(0,0)方法可以主动通知系统去测量,然后就可以直接使用它获取宽高。getHeight()必须在onLayout方法执行完后,才能获得宽高。 view.getViewTreeObserver().addOnG

2016-06-28 22:32:25 2491

原创 Android大图轮播效果的实现-代码逻辑

这一篇主要是接着上一篇来讲的,上一篇主要说的是从界面层面上的实现,这一篇是从业务逻辑来说的。1.给viewpager设置adapter class MyPagerAdapter extends PagerAdapter{ /** * 返回多少page */ @Override public int getCount() { return 100;

2016-06-27 21:16:41 1350

原创 练习Android大图轮播效果的实现-大致布局

这一次我主要想学习动手实现一下平常APP都很常见的大图轮播效果(如下面红框所示)。但是下面这个是没有动态的文字的,我们这次的是有动态的文字改变的。实现的步骤大概是这些:1.显示大图轮播的基本架构(主要用viewpager)2.无限循环效果的实现3.自动循环的实现首先实现第一步,就是把大图轮播的框架搭建出来这里主要用到的是viewp

2016-06-26 18:22:44 2031 2

原创 ListView使用技巧小结(1)

ListView使用技巧小结(1)1.设置不同item间的分割线安卓提供了divider和dividerHeight两个属性去控制ListView之间分割线和它的高度。(分割线除了可以设置成为一个颜色之外,还可以设置图片资源)android:divider = "@android:color/balck"android:dividerHeight = "11dp"2.隐藏listview的滚动条

2016-06-25 20:33:09 292

转载 android MotionEvent中getX()和getRawX()的区别

public class Res extends Activity implements View.OnTouchListener {            Button btn = null;        int x = 0;        int y = 0;        int rawx = 0;        int rawy = 0;         

2016-06-22 22:55:57 225

原创 View和ViewGroup的区别以及自定义控件步骤小结

1.他们都需要进行测量操作2.ViewGroup主要是控制子view如何摆放,所以必须实现onLayout  View没有子view,所以不需要onLayout方法,但是必须实现onDraw自定义控件步骤:测量:onMeasure  设置自己显示在屏幕上的宽高布局:onLayout   设置自己显示在屏幕上的位置(只有在自定义ViewGroup中才用到)绘制:o

2016-06-22 22:45:01 1900

原创 Android系统原生的旋转和位置动画并没有真正改变view的位置

今天做一个悬浮菜单的时候,发现一个奇怪的BUG,就是当我把我的悬浮菜单用旋转动画旋转出去的时候,虽然在屏幕上消失了,但是按相应的位置还是会有点击事件。然后我查了一下,发现原来系统原生的旋转和位置动画是不会改变view的位置。我想应该是由于APP上的布局太过复杂了,一个view位置的改变很容易牵一发而动全身。毕竟动画效果很多情况上只需要视觉上实现效果就好。所以只能通过setEnable()方法去禁用

2016-06-21 16:18:07 2399

原创 android基于JSON的短信备份功能

public static class Data{ int progress; } /*** * 短信备份 * **/ public static void backUpSmsJson(Activity activity, final BackupProgress backupProgress){ Uri uri = U

2016-06-15 11:28:21 520

原创 用JSON备份还原短信时特殊字符的处理

今天捣鼓一个短信备份还原的功能,用json格式来做。但是由于短信都是各式各样的字符组成。所以要是里面有和json一样的格式特殊字符的时候,就会出错导致恢复不了。就想下面那样:要是body那一部分,也就是我们短信的内容里面包含着json的特殊字符即(" , [ ] { }),的时候就会导致短信恢复的时候解析出错。虽然其实发生这种事情的概率挺低的,但是只要存在着一个符号就会导致

2016-06-10 22:46:16 1002

转载 Android 更新UI的两种方法——handler和runOnUiThread()

Android 更新UI的两种方法——handler和runOnUiThread()在Android开发过程中,常需要更新界面的UI。而更新UI是要主线程来更新的,即UI线程更新。如果在主线线程之外的线程中直接更新页面显示常会报错。抛出异常:android.view.ViewRoot$CalledFromWrongThreadException: Only the original thr

2016-06-09 11:03:00 388

原创 ListView.setOnScrollListener(android.widget.AbsListView$OnScrollListener)' on a null object referenc

今天为试着做一个软件管理的app,然后就为listview加入了OnScrollListener,发现会提示如下错误:                                                                          java.lang.RuntimeException: Unable to start activity Compon

2016-06-07 13:15:53 1071

转载 Android利用Animation.RELATIVE_TO_SELF做出个性化的动画

在Android开发中,Animation是用来给控件制作效果的。大多数的控件都可以用这个类,这个类包含了4种基本动作,分别为移动,旋转,淡入淡出,缩放。使用Animation的两种方式:方式一:在代码中创建、设置以及启动动画(移动TranslateAnimation/旋转RotateAnimation/淡入淡出AlphaAnimation/缩放ScaleAnimation),这样

2016-05-27 17:40:03 5141

原创 在Android Studio进行测试

在Eclipse里面测试很麻烦,又要新建一个项目,又要在mianfest文件添加测试框架和依赖库。现在在android studio里面要测试就不用那么麻烦,要是你是一开始就是在AS新建的工程,它会自动添加测试的文件夹。要是我们从eclipse导入工程进AS它是不会新建这样的一个文件夹的,但是我们只要跟着上面一样在导入的工程里面新建这些文件夹也就可以了就是在SRC文件夹下面新建

2016-05-26 23:20:03 468

原创 跟谷歌学一个多次点击事件的逻辑处理

Android每一个版本,谷歌都会给他弄一个彩蛋。怎么弄呢?只要我们在设置里面狂点版本号就行了。       然后查看源码:其实这个功能的逻辑主要就是几行代码,下面是根据上面写的一个四击事件: long[] mHits = new long[4];// 数组长度表示要点击的次数 public void on

2016-05-20 10:34:00 1059

转载 Android Studio常用快捷键一览

2016-05-19 12:40:35 227

转载 Android Studio目录结构浅析

应各位朋友的要求,写这篇文章,让我们来简单了解下Android Studio中不同目录(文件)的位置和用途。首先看下一个App的最简单的目录结构【= = 好复杂的样子】OK,我们这么看,第一,把这么多文件先分成这么三块1. 编译系统(Gradle)2. 配置文件3. 应用模块Gradle是Google推荐使用的一套基于Groovy的编译系统脚本(当然,你

2016-05-18 09:24:19 288

原创 android studio文件名颜色分别表示含义

这其实是主要和版本控制工具有关,含义如下:绿色,已经加入控制暂未提交红色,未加入版本控制蓝色,加入,已提交,有改动白色,加入,已提交,无改动灰色:版本控制已忽略文件

2016-05-16 19:35:39 10541 1

原创 通过在使用ids.xml管理资源ID来提高效率

平常我们给布局文件的控件加ID的时候都会使用android:id = @+id/xxx的方式但是当我们的layout文件多起来了要修改就不容易,很难找的到所以我们看到谷歌的源码里面为了统一管理这些ID,它在values文件夹里面有一个叫做ids.xml的东西有了这个我们要修改资源ID的时候直接在这里修改就行了。然后我们引用这些id的时候把原先的@+id改为@id

2016-05-16 13:15:27 1147

原创 Android利用文本框监听器做出在输入的过程中就能出查询结果的效果

在很多程序的搜索框或查询框中,会有随着我们输入的改变而自动改变结果的效果。主要用到的是文本监听器这一个东西。代码如下:etNumber = (EditText) findViewById(R.id.et_number); tvResult = (TextView) findViewById(R.id.tv_result); // 监听EditText的变化 etNumber.

2016-05-14 13:07:21 2212

原创 APP中透明新手引导页面的实现

很多时候刚刚安装一个新的APP的时候,它都会有一个透明背景的引导。里面通常会有些指示的标志告诉用户某个按钮是干嘛的,某个区域是干嘛的。实现这样一个效果可以用以下步骤:1.要新建一个activity,然后setContentView一个布局文件2.在布局文件的根布局中设一个背景,也就是我们画好的一张透明的带有指示符号的图3.在AndroidMainfest.xml文件中,在声明该ac

2016-05-13 15:22:12 4420

原创 检查Android进程当前是否正在后台运行

public class ServiceStatusUtils { /** * 检测服务是否正在运行 * * */ public static boolean isServiceRunning(Context ctx, String serviceName) { ActivityManager am = (ActivityManager) ctx .getS

2016-05-11 18:23:23 1420

转载 android之interpolator的用法详解

nterpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。  android中的文档内容如下:   AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候加速

2016-05-09 22:37:03 638

原创 Android文本框振动效果的实现

今天尝试了一下文本框的振动效果。一般我们会在输入的时候,要是输入的内容不符合我们的要求的时候,我们可以做一个反馈。很多程序上会有这一个文本输入框的左右反复运动的效果来提示我们输入不符合要求。这个效果其实API Demo里面也有所以我就直接根据里面的使用方法来实现。1.首先先findViewById到EditTextEditText etNumber = (EditText) findVie

2016-05-09 22:31:54 2109

原创 addView(View, LayoutParams) is not supported in AdapterView

今天报出这个错误,addView(View, LayoutParams) is not supported in AdapterView然后我这个activity主要用listview的,心想应该是写错布局了吧。去到布局文件里面看,发现还真是所以出现这个问题的朋友可以看一下自己的布局文件有没有写错

2016-05-07 13:13:23 1022

原创 优化onFling()的滑动效果试验

想要做一个向左右滑动滚动的效果,虽然知道用onFling()这一个方法效果不太好,但是想要动手实现一下。为了方便我们判断滑动动作,安卓给了我们一个叫做GestureDetector(手势识别器)的东西。首先我们要在要使用滑动操作的activity(我这里为了减少重复代码,写一个基类让其他activity继承)里面重写一下onTouchEvent()方法 @Override publi

2016-05-04 14:15:10 2427

原创 通过自定义TextView使得其获得焦点

当我们想要在界面使用类似于滚动字幕的效果时,通常我们会在布局文件中加入下列代码: <com.example.mobilesafe2.view.FocuedTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layo

2016-05-01 10:34:28 6086

转载 Google Java Style 中文版

Google Java Style 中文版  基于官方文档2013.12.19最后一次改动。翻译人:Weir Zhang (zh.weir)旁白:水平有限,很多地方只是意译。不准确的地方,大家以原版文档为准。原版地址: http://google-styleguide.googlecode.com/svn/trunk/javaguide.html

2016-04-27 20:06:22 404

转载 Android开发过程中R文件的离奇消失

R.java这个文件是会自动生成的。但是有时候你写错xml文件的时候,R.java是不会自动生成对应的值。这个时候我们会很习惯去clean一下这个项目,这个时候会突然发现,R.java竟然不见了。这个时候的你肯定非常的气愤,你可能会拼命在网上找答案,网上会有很多答案告诉你 右键项目--》Android Tools--> fix project properties。可能你怎么fix都不能把

2016-04-22 13:45:54 336

原创 布局文件或控件存在却无法findViewById的解决办法

我们有时候在引入界面xml文件或者findViewById时,有时候会遇到明明在R文件里面有记录,名字也没打错。但是就是会出现xxxcannot be resolved or is not a field的情况。原来是因为我们导包的时候导成了android.R,其实我们是应该导我们这个项目工程包目录下的R文件就是com.xxx.xxx.R。

2016-04-19 15:43:48 1811

原创 android:visibility中"invisible"与"gone"对android:layout_weight的影响

在安卓布局文件中通过android:visibility属性我们可以设置控件的隐藏与否,要是我们想要隐藏一个控件可以使用android:visibility="invisible"或者android:visibility="gone",但是要是我们使用了android:layout_weight属性之后,这两种方法会产生不同的效果。我们看看:1.使用android:visibility="in

2016-04-16 21:33:58 1078

转载 TortoiseSVN图标介绍

TortoiseSVN 是svn版本控制系统的一个免费开源客户端,它是svn版本控制的Windows 扩展。可以使你避免使用枯燥而且不方便的命令行。它完全嵌入 Windows Explorer,使用时只需在正常的窗口里点击右键操作就可以了。                 1.一个新检出的工作复本使用如下绿色的对勾重载。表示Subversion状态正常。

2016-04-15 12:40:09 425

原创 Fragement向下兼容方法

今天在练习Fragment的时候提示我至少需要API Level11,因为我工程最低版本一般设在Level 8 。然后查了查说Fragment是从3.0后才开始有的。然后我就想试一试让其支持3.0一下的版本。一开始我再用Fragment要导包的时候我就看到了有两个包可以导,那个v4我想应该就是用来兼容的。但是奇怪的是,到了getFragmentManger()的时候却出错,然后就郁闷了,然后看了看

2016-04-14 22:34:47 401

原创 Android利用缩放加载大图片避免内存溢出

因为安卓的堆内存有限(尽管现在随着安卓手机屏幕分辨率的提高堆内存没有以前小屏幕时代那么局限),要是完全加载一张大图片很容易导致OOM(out of memory)的问题。所以为了解决这一情况,我们可以通过缩放这一个方法来加载图片。首先我们介绍今天要用到的API:BitmapFactory.Options我们先上代码://解析图片时需要使用到的参数封装在opt这个对象里Option

2016-04-10 21:38:32 2024

原创 Android进程优先级部分整理与理解

Android的进程按重要性分主要有5级,从1到5重要性逐级递减。1.Foreground proess  前台进程2.Visible process   可见进程3.Service process  服务进程4.Backgorund process 后台进程5.Empty process 空进程当中,关于安卓系统关于前台进程中的两点值得理解一下:It

2016-03-28 22:39:45 523

空空如也

空空如也

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

TA关注的人

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