
Android
文章平均质量分 54
rentalphang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android利用缩放加载大图片避免内存溢出
因为安卓的堆内存有限(尽管现在随着安卓手机屏幕分辨率的提高堆内存没有以前小屏幕时代那么局限),要是完全加载一张大图片很容易导致OOM(out of memory)的问题。 所以为了解决这一情况,我们可以通过缩放这一个方法来加载图片。 首先我们介绍今天要用到的API:BitmapFactory.Options 我们先上代码: //解析图片时需要使用到的参数封装在opt这个对象里 Option原创 2016-04-10 21:38:32 · 2074 阅读 · 0 评论 -
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 · 335 阅读 · 0 评论 -
练习Android大图轮播效果的实现-大致布局
这一次我主要想学习动手实现一下平常APP都很常见的大图轮播效果( 如下面红框所示)。但是下面这个是没有动态的文字的,我们这次的是有动态的文字改变的。 实现的步骤大概是这些: 1.显示大图轮播的基本架构(主要用viewpager) 2.无限循环效果的实现 3.自动循环的实现 首先实现第一步,就是把大图轮播的框架搭建出来 这里主要用到的是viewp原创 2016-06-26 18:22:44 · 2076 阅读 · 2 评论 -
用JSON备份还原短信时特殊字符的处理
今天捣鼓一个短信备份还原的功能,用json格式来做。但是由于短信都是各式各样的字符组成。所以要是里面有和json一样的格式特殊字符的时候,就会出错导致恢复不了。 就想下面那样: 要是body那一部分,也就是我们短信的内容里面包含着json的特殊字符即(" , [ ] { }),的时候就会导致短信恢复的时候解析出错。 虽然其实发生这种事情的概率挺低的,但是只要存在着一个符号就会导致原创 2016-06-10 22:46:16 · 1056 阅读 · 0 评论 -
Android大图轮播效果的实现-代码逻辑
这一篇主要是接着上一篇来讲的,上一篇主要说的是从界面层面上的实现,这一篇是从业务逻辑来说的。 1.给viewpager设置adapter class MyPagerAdapter extends PagerAdapter{ /** * 返回多少page */ @Override public int getCount() { return 100;原创 2016-06-27 21:16:41 · 1415 阅读 · 0 评论 -
getHeight()和getMeasuredHeight()的区别
getMeasuredHeight()获取测量完的高度,只要在onMeasure方法执行完,就可以它获取到宽高,在自定义控件内部多使用这个使用view.measure(0,0)方法可以主动通知系统去测量,然后就可以直接使用它获取宽高。getHeight()必须在onLayout方法执行完后,才能获得宽高。 view.getViewTreeObserver().addOnG原创 2016-06-28 22:32:25 · 2543 阅读 · 0 评论 -
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 · 554 阅读 · 0 评论 -
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 · 577 阅读 · 0 评论 -
Android-Parcelable理解与使用(对象序列化)
http://my.oschina.net/zhoulc/blog/172163 parcel定义介绍: Android提供了一种新的类型:parcel(英文解释:包裹,小包),本类用来封装数据的容器,封装后的数据可以通过Intent或IPC传递,除了基本类型外,只有实现了Parcelable接口的类才能放入parcel中。 parcel一般都用在Binder通信转载 2016-07-16 18:25:19 · 371 阅读 · 0 评论 -
Android系统原生的旋转和位置动画并没有真正改变view的位置
今天做一个悬浮菜单的时候,发现一个奇怪的BUG,就是当我把我的悬浮菜单用旋转动画旋转出去的时候,虽然在屏幕上消失了,但是按相应的位置还是会有点击事件。然后我查了一下,发现原来系统原生的旋转和位置动画是不会改变view的位置。我想应该是由于APP上的布局太过复杂了,一个view位置的改变很容易牵一发而动全身。毕竟动画效果很多情况上只需要视觉上实现效果就好。所以只能通过setEnable()方法去禁用原创 2016-06-21 16:18:07 · 2443 阅读 · 0 评论 -
View和ViewGroup的区别以及自定义控件步骤小结
1.他们都需要进行测量操作 2.ViewGroup主要是控制子view如何摆放,所以必须实现onLayout View没有子view,所以不需要onLayout方法,但是必须实现onDraw 自定义控件步骤: 测量:onMeasure 设置自己显示在屏幕上的宽高 布局:onLayout 设置自己显示在屏幕上的位置(只有在自定义ViewGroup中才用到) 绘制:o原创 2016-06-22 22:45:01 · 1942 阅读 · 0 评论 -
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 · 256 阅读 · 0 评论 -
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 · 3081 阅读 · 0 评论 -
解决百度地图Fragment切换黑屏问题
今天在用TabHost+Fragment切换带有百度地图的TAB时会有黑屏的状况,在一开始网上找了很多方法都解决不了,这个问题好像已经由来已久了。 但是在官方论坛找到了解决办法,就是要把mapview改成TextureMapView,问题就解决了。原创 2016-07-31 01:01:23 · 4610 阅读 · 8 评论 -
在MapView上面添加浮动控件的方法
最近在做一个跑步的APP,需要用到百度地图的SDK。然后在写UI布局的时候需要在地图上面浮动显示控件按钮。 用了很多方法,也不如意,最后发现原来直接用RelativeLayout就可以做出这种效果。 代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"原创 2016-07-31 22:43:25 · 4736 阅读 · 1 评论 -
百度定位SDK只定位一次以及系统没有出现位置服务图标的解决
这是个巨大的坑,因为官方文档没说要在Mainfest里面声明一个服务,导致我的定位一直就只有一次,而且任务栏也没有出现定位的图标。后来发现原来要在Mainfest文件加入以下声明:<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"></service>原创 2016-10-12 22:49:46 · 2760 阅读 · 2 评论 -
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 · 423 阅读 · 0 评论 -
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 · 1105 阅读 · 0 评论 -
Fragement向下兼容方法
今天在练习Fragment的时候提示我至少需要API Level11,因为我工程最低版本一般设在Level 8 。然后查了查说Fragment是从3.0后才开始有的。然后我就想试一试让其支持3.0一下的版本。一开始我再用Fragment要导包的时候我就看到了有两个包可以导,那个v4我想应该就是用来兼容的。但是奇怪的是,到了getFragmentManger()的时候却出错,然后就郁闷了,然后看了看原创 2016-04-14 22:34:47 · 429 阅读 · 0 评论 -
Android文本框振动效果的实现
今天尝试了一下文本框的振动效果。一般我们会在输入的时候,要是输入的内容不符合我们的要求的时候,我们可以做一个反馈。很多程序上会有这一个文本输入框的左右反复运动的效果来提示我们输入不符合要求。这个效果其实API Demo里面也有所以我就直接根据里面的使用方法来实现。 1.首先先findViewById到EditText EditText etNumber = (EditText) findVie原创 2016-05-09 22:31:54 · 2162 阅读 · 0 评论 -
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 · 1143 阅读 · 0 评论 -
通过自定义TextView使得其获得焦点
当我们想要在界面使用类似于滚动字幕的效果时,通常我们会在布局文件中加入下列代码: <com.example.mobilesafe2.view.FocuedTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layo原创 2016-05-01 10:34:28 · 6158 阅读 · 0 评论 -
APP中透明新手引导页面的实现
很多时候刚刚安装一个新的APP的时候,它都会有一个透明背景的引导。里面通常会有些指示的标志告诉用户某个按钮是干嘛的,某个区域是干嘛的。 实现这样一个效果可以用以下步骤: 1.要新建一个activity,然后setContentView一个布局文件 2.在布局文件的根布局中设一个背景,也就是我们画好的一张透明的带有指示符号的图 3.在AndroidMainfest.xml文件中,在声明该ac原创 2016-05-13 15:22:12 · 4481 阅读 · 0 评论 -
检查Android进程当前是否正在后台运行
public class ServiceStatusUtils { /** * 检测服务是否正在运行 * * */ public static boolean isServiceRunning(Context ctx, String serviceName) { ActivityManager am = (ActivityManager) ctx .getS原创 2016-05-11 18:23:23 · 1503 阅读 · 0 评论 -
在Android Studio进行测试
在Eclipse里面测试很麻烦,又要新建一个项目,又要在mianfest文件添加测试框架和依赖库。 现在在android studio里面要测试就不用那么麻烦,要是你是一开始就是在AS新建的工程,它会自动添加测试的文件夹。 要是我们从eclipse导入工程进AS它是不会新建这样的一个文件夹的,但是我们只要跟着上面一样在导入的工程里面新建这些文件夹也就可以了 就是在SRC文件夹下面新建原创 2016-05-26 23:20:03 · 519 阅读 · 0 评论 -
Android利用文本框监听器做出在输入的过程中就能出查询结果的效果
在很多程序的搜索框或查询框中,会有随着我们输入的改变而自动改变结果的效果。 主要用到的是文本监听器这一个东西。代码如下: etNumber = (EditText) findViewById(R.id.et_number); tvResult = (TextView) findViewById(R.id.tv_result); // 监听EditText的变化 etNumber.原创 2016-05-14 13:07:21 · 2253 阅读 · 0 评论 -
优化onFling()的滑动效果试验
想要做一个向左右滑动滚动的效果,虽然知道用onFling()这一个方法效果不太好,但是想要动手实现一下。 为了方便我们判断滑动动作,安卓给了我们一个叫做GestureDetector(手势识别器)的东西。 首先我们要在要使用滑动操作的activity(我这里为了减少重复代码,写一个基类让其他activity继承)里面重写一下onTouchEvent()方法 @Override publi原创 2016-05-04 14:15:10 · 2487 阅读 · 0 评论 -
Android利用Animation.RELATIVE_TO_SELF做出个性化的动画
在Android开发中,Animation是用来给控件制作效果的。大多数的控件都可以用这个类,这个类包含了4种基本动作,分别为移动,旋转,淡入淡出,缩放。 使用Animation的两种方式: 方式一:在代码中创建、设置以及启动动画(移动TranslateAnimation/旋转RotateAnimation/淡入淡出AlphaAnimation/缩放ScaleAnimation),这样转载 2016-05-27 17:40:03 · 5294 阅读 · 0 评论 -
通过在使用ids.xml管理资源ID来提高效率
平常我们给布局文件的控件加ID的时候都会使用android:id = @+id/xxx的方式 但是当我们的layout文件多起来了要修改就不容易,很难找的到 所以我们看到谷歌的源码里面为了统一管理这些ID,它在values文件夹里面有一个叫做ids.xml的东西 有了这个我们要修改资源ID的时候直接在这里修改就行了。然后我们引用这些id的时候把原先的@+id改为@id原创 2016-05-16 13:15:27 · 1202 阅读 · 0 评论 -
Android Studio目录结构浅析
应各位朋友的要求,写这篇文章,让我们来简单了解下Android Studio中不同目录(文件)的位置和用途。 首先看下一个App的最简单的目录结构 【= = 好复杂的样子】 OK,我们这么看,第一,把这么多文件先分成这么三块 1. 编译系统(Gradle) 2. 配置文件 3. 应用模块 Gradle是Google推荐使用的一套基于Groovy的编译系统脚本(当然,你转载 2016-05-18 09:24:19 · 319 阅读 · 0 评论 -
布局文件或控件存在却无法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 · 1853 阅读 · 0 评论 -
Android开发过程中R文件的离奇消失
R.java这个文件是会自动生成的。但是有时候你写错xml文件的时候,R.java是不会自动生成对应的值。这个时候我们会很习惯去clean一下这个项目,这个时候会突然发现,R.java竟然不见了。 这个时候的你肯定非常的气愤,你可能会拼命在网上找答案,网上会有很多答案告诉你 右键项目--》Android Tools--> fix project properties。可能你怎么fix都不能把转载 2016-04-22 13:45:54 · 356 阅读 · 0 评论 -
Android Studio常用快捷键一览
转载 2016-05-19 12:40:35 · 253 阅读 · 0 评论 -
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
今天项目发布时遇到了这个问题,在低版本设备上面死活发布不上去,还有打包也打不成功,折腾了好长一段时间,网上大部分给出的 解决方案都是说 在工程的混淆配置文件 proguard-rules.pro 中加入下面这句代码即可: -keepattributes EnclosingMethod 但是尝试之后还是不行,发布不了,最后使用这种方式解决了,添加之后可以正常发布 在主项转载 2016-11-15 22:33:55 · 641 阅读 · 0 评论