android总结
luohai859
这个作者很懒,什么都没留下…
展开
-
Android依赖-管理依赖的版本
本文转载自原文链接我主要使用了exclude,使用exculde去除重复的依赖,比如 引入的多个第三方包都包含 okhttp 就可以使用该方法去除:A: compile ‘com.test.aaa’B : compile ‘com.test.bbb’C: compile ‘com.test.ccc’D: compile ‘com.squarequ.okh...转载 2019-05-24 17:15:01 · 1585 阅读 · 0 评论 -
android 解决ViewPager双层嵌套的滑动问题
ViewPager的双层嵌套时影响内部ViewPager的触摸滑动问题 之前在做自己的一个项目的时候,遇到广告栏图片动态切换,我第一时间想到的就是ViewPager,整个软件只有广告这一部分ViewPager还好说,但是软件越复杂出现的问题越多,尤其是遇到ViewPager双层嵌套问题,找了很多资料 解决方法一:自定义ViewPager做为父ViewPager控件 public cl转载 2015-07-20 16:17:20 · 2381 阅读 · 1 评论 -
Android禁止ViewPager的左右滑动
有时候在开发中会遇到一些“诡异”的要求,比如在ViewPager中嵌入ListView,或者再嵌入一个ViewPager,那么在滑动的时候就会造成被嵌入的XXView不能滑动了,那么现在就把最外层的ViewPager禁止滑动吧,让被嵌入的XXView获得滑动事件好了。关于解决方法,网上也有很多说法,基本上是一致的,但是需要理解这个Android下的事件分发机制才行,不明白事件分发机制的,上网查些资料转载 2015-07-30 17:54:54 · 37917 阅读 · 15 评论 -
Android中shape中的属性大全
Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结:先看下面的代码: android:startColor="#ff8c00"原创 2015-06-12 13:39:37 · 488 阅读 · 0 评论 -
android图片压缩总结
首先该文章是总结, 不是原创, 是通过看网上其他大神的文章和自己的一些实践总结出来的. 一.图片的存在形式1.文件形式(即以二进制形式存在于硬盘上)2.流的形式(即以二进制形式存在于内存中)3.Bitmap形式这三种形式的区别: 文件形式和流的形式对图片体积大小并没有影响,也就是说,如果你手机SD卡上的如果是100K,那么通过流的形式读到内存中,也一定是占100K的转载 2015-05-26 14:40:42 · 617 阅读 · 0 评论 -
Android获取32位应用签名及如何判断该签名为debug还是release
1、如何获取Android的应用程序签名信息?2、如何判断该签名是属于debug签名还是release签名?进入正题:1、获取应用的签名信息:相信这个大家见过好多,即使不会的,也可百度得到,但是大部分度娘得到的答案你试验过之后会发现好多坑,通过以下这种方式得到的签名是一个非常长串的字符,和我们平常在第三方平台填的应用签名是不一样的,第三方平台填的签名信息是32位的。原创 2015-03-27 16:51:08 · 6946 阅读 · 0 评论 -
Activity的四种launchMode
Activity的四种launchMode:launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应转载 2015-02-09 15:26:14 · 529 阅读 · 0 评论 -
Android Context 上下文
本文大多数内容翻译自:http://www.doubleencore.com/2013/06/context/ ,建议大家尽可能看下原文。1、Context概念Context,相信不管是第一天开发Android,还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源、启动一个新的Activity、获取系统服务、获取内部文件(夹)路径、创建转载 2015-01-15 14:21:28 · 591 阅读 · 0 评论 -
Android -- Looper.prepare()和Looper.loop()
Android中的Looper类,是用来封装消息循环和消息队列的一个类,用于在android线程中进行消息处理。handler其实可以看做是一个工具类,用来向消息队列中插入消息的。(1) Looper类用来为一个线程开启一个消息循环。 默认情况下android中新诞生的线程是没有开启消息循环的。(主线程除外,主线程系统会自动为其创建Looper对象,开启消息循环。)Lo转载 2014-12-26 14:19:58 · 581 阅读 · 0 评论 -
ScrollView中嵌套GridView,ListView只显示一行的解决办法
关于为什么只显示一行,个人理解是原创 2014-09-17 20:43:40 · 11331 阅读 · 1 评论 -
Activity中获取view的高和宽为0时的解决方法
在activity中可以调用View.getWidth、View.getHeight()、View.getMeasuredWidth() 、View.getgetMeasuredHeight()来获得某个view的宽度或高度,但是在onCreate()、onStrart()、onResume()方法中会返回0,这是应为当前activity所代表的界面还没显示出来没有添加到WindowPhone的D原创 2014-09-03 15:47:42 · 797 阅读 · 0 评论 -
解决fragment+viewpager第二次进入的时候没有数据的问题
为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动。不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notif原创 2014-09-26 15:08:21 · 1204 阅读 · 0 评论 -
LruCache之Android瀑布流照片墙实现,体验不规则排列的美感
传统界面的布局方式总是行列分明、坐落有序的,这种布局已是司空见惯,在不知不觉中大家都已经对它产生了审美疲劳。这个时候瀑布流布局的出现,就给人带来了耳目一新的感觉,这种布局虽然看上去貌似毫无规律,但是却有一种说不上来的美感,以至于涌现出了大批的网站和应用纷纷使用这种新颖的布局来设计界面。记得我在之前已经写过一篇关于如何在Android上实现照片墙功能的文章了,但那个时候是使用的GridVie原创 2014-08-18 14:42:58 · 2517 阅读 · 3 评论 -
Android高效加载大图、多图解决方案_LruCache,有效避免程序OOM
本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文。http://developer.android.com/training/displaying-bitmaps/index.html高效加载大图片我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图原创 2014-08-18 14:27:58 · 9679 阅读 · 4 评论 -
LruCache之Android多点触控技术实战,自由地对图片进行缩放和移动
在上一篇文章中我带着大家一起实现了Android瀑布流照片墙的效果,虽然这种效果很炫很酷,但其实还只能算是一个半成品,因为照片墙中所有的图片都是只能看不能点的。因此本篇文章中,我们就来对这一功能进行完善,加入点击图片就能浏览大图的功能,并且在浏览大图的时候还可以通过多点触控的方式对图片进行缩放。那我们现在就开始动手吧,首先打开上次的PhotoWallFallsDemo项目,在里面加入一个Z转载 2014-08-18 14:47:30 · 1283 阅读 · 1 评论 -
LruCache之Android照片墙应用实现,再多的图片也不怕崩溃
照片墙这种功能现在应该算是挺常见了,在很多应用中你都可以经常看到照片墙的身影。它的设计思路其实也非常简单,用一个GridView控件当作“墙”,然后随着GridView的滚动将一张张照片贴在“墙”上,这些照片可以是手机本地中存储的,也可以是从网上下载的。制作类似于这种的功能的应用,有一个非常重要的问题需要考虑,就是图片资源何时应该释放。因为随着GridView的滚动,加载的图片可能会越来越多,如果转载 2014-08-18 14:43:11 · 3371 阅读 · 1 评论 -
Android AsyncTask 源码解析
1、概述相信大家对AsyncTask都不陌生,对于执行耗时任务,然后更新UI是一把利器,当然也是替代Thread + Handler 的一种方式。如果你对Handler机制还不了解,请看:Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系。2、简单的例子相信大家都写过这样的代码:[java] vi转载 2014-08-18 11:05:17 · 1125 阅读 · 0 评论 -
主动通知Android系统图库进行更新
项目中遇到调用图库进行图片的选择,因为不能主动及时更新,遂实现代码调用实现主动及时更新。废话不多刷,看代码。方式一,发送一个广播,sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.parse("file://"+fileSD_file)));方转载 2015-09-01 18:02:15 · 1671 阅读 · 1 评论 -
关于应用第一次安装打开,点击home键,然后再点击图标打开时,重复打开页面问题
大家多少都会遇到这个问题。而且早在两年前也有人提出解决办法。http://stackoverflow.com/questions/6356467/activity-stack-ordering-problem-when-launching-application-from-android-app-inst 重现方式: 1.用android系统的i转载 2015-08-19 17:54:44 · 3086 阅读 · 2 评论 -
下载安装APK(兼容Android7.0)
我们使用手机的时候经常会看到应用程序提示升级,大部分应用内部都需要实现升级提醒和应用程序文件(APK文件)下载。一般写法都差不多,比如在启动app的时候,通过api接口获得服务器最新的版本号,然后和本地的版本号比较,来判断是否需要弹出提示框下载,当然也可以通过推送的自定义消息来实现。我们这里主要讨论的是应用程序下载,并在通知栏提醒下载完成。实现过程大致分为三步:创建一个转载 2017-06-01 15:27:22 · 1066 阅读 · 0 评论 -
FragmentPagerAdapter与FragmentStatePagerAdapter区别
在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动。不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChange转载 2016-11-28 16:45:35 · 239 阅读 · 0 评论 -
使用TextView/EditText应该注意的地方
可以显示 Markdown 格式文本的自定义WebView https://github.com/falnatsheh/MarkdownView PinchZoomTextView https://github.com/androidessence/PinchZoomTextView emoji表情 https://github.com/rockerhieu/emoji转载 2016-12-07 17:05:29 · 853 阅读 · 0 评论 -
Android 读取<meta-data>元素的数据
在AndroidManifest.xml中,元素可以作为子元素,被包含在、 、和元素中,但不同的父元素,在应用时读取的方法也不同。1 :在Activity的应用。 xml代码段: java代码段: ActivityInfo info=this.getPackageManager()转载 2016-07-21 18:10:34 · 611 阅读 · 0 评论 -
webview javascript 注入方法
Android中向webview注入js代码可以通过webview.loadUrl("javascript:xxx")来实现,然后就会执行javascript后面的代码。但是当需要注入一整个js文件的时候,貌似就有点麻烦了。不过理清以下思路,方法其实也很简单,如下:我们通过在webview的onPageFinished方法中执行js代码注入:第一种:当webview加载转载 2016-06-13 16:09:28 · 890 阅读 · 0 评论 -
Android Handler 避免内存泄漏的用法总结
Android开发经常会用到handler,但是我们发现每次使用Handler都会出现:This Handler class should be static or leaks might occur(null)这样的提示。Android lint就是为了提示我们,这样使用Handler会容易造成内存泄漏。但是你会发现其实改成static并没有什么用。因为这并没有解决这个问题的根本。首先,转载 2016-02-29 14:10:36 · 1594 阅读 · 0 评论 -
The content of the adapter has changed but ListView did not receive a notification
The content of the adapter has changed but ListView did not receive a notification在Android开发过程中,使用了大量的ListView,发现这个错误偶尔会出现。特别是做压力测试的时候,不停的点击刷新,更容易出现这个错误。代码中已经使用了Adapter的notifyDataSetChanged()方法通原创 2016-01-11 14:28:12 · 971 阅读 · 0 评论 -
app崩溃后捕获异常或自动重启
假如你开发的app有这个需求的话:崩溃后自动重启或者捕获异常信息。你可以参照下文:package com.tan.abnormalrestart; import java.lang.Thread.UncaughtExceptionHandler; import android.app.Application; import android.content.Intent; public cl转载 2015-12-21 18:40:30 · 901 阅读 · 0 评论 -
解决使用AnimationDrawable无法播放动画的问题
第一种方式启动帧动画:(在Activity启动时会自动运行动画)view plaincopyAnimationDrawable ad; ImageView iv = (ImageView) findViewById(R.id.animation_view); iv.setBackgroundResource(R.drawable.animation); ad = (AnimationDraw转载 2015-12-17 17:44:27 · 2649 阅读 · 0 评论 -
Android软键盘弹出时把布局顶上去的解决方法
解决方法,在mainfest.xml中,对那个Activity加:android:windowSoftInputMode="adjustPan|stateHidden">就不会把原来Activity的布局给顶上去了。 %¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ 今天要做一个搜索转载 2015-12-29 14:36:14 · 758 阅读 · 1 评论 -
android获取是否有某种权限
方法一:PackageManager pkm = getActivity().getPackageManager(); boolean has_permission = (PackageManager.PERMISSION_GRANTED == pkm.checkPermission("android.permission.RECORD_AUDIO", this.activity.ge原创 2015-12-28 20:53:54 · 1317 阅读 · 0 评论 -
Android使用Unicode码对中文进行字母索引的2种方法
1、第三方jar包pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换,而且拼音输出格式可以定制。 官方网站:http://pinyin4j.sourceforge.net/测试代码如下:package com.orgcent.util;import net.sourceforge.pinyin4j.PinyinHelper;import net.source转载 2015-11-26 14:06:50 · 1841 阅读 · 0 评论 -
ScrollView下,ListView重复调用getview解决方案
首先讲一下我遇到的需求吧,页面是这样的,上边有东西,中间是列表,下边还有东西。首先我看到列表立刻就想到了用ListView,但是页面有限,只能用ScrollView包一下。想到就做呗。我就在ScrollView里面加了一个ListView, ListView设置的是wapcontent,这样就出现了ListView数据只显示出了一行。好的,解决问题的方案就来了。一.设置scrollView转载 2015-11-25 15:04:50 · 742 阅读 · 0 评论 -
Universal-Image-Loader 使用
项目介绍:Android上最让人头疼的莫过于从网络获取图片、显示、回收,任何一个环节有问题都可能直接OOM,这个项目或许能帮到你。Universal Image Loader for Android的目的是为了实现异步的网络图片加载、缓存及显示,支持多线程异步加载。它最初来源于Fedor Vlasov的项目,且自此之后,经过大规模的重构和改进。特性列举:多线程下载图片,图片可以来源于网络,文件系统,转载 2015-11-18 17:23:49 · 510 阅读 · 0 评论 -
检测App的内存占用和泄漏
别以为Android程序是基于Java语言,有强大的垃圾回收机制,就完全不用担心内存问题,其实Android程序也要特别小心你的内存,因为毕竟手机不比PC机,内存是极其有限的,在内存不够的时候,系统随时会Kill掉你的程序。目前我所了解到的,容易发生内存问题的地方如下:(1) 操作Bitmap对象,一定要注意,在不使用的时候 recycle(2) 访问数据库,一定要记得关闭游标原创 2015-11-18 14:28:39 · 8250 阅读 · 0 评论 -
两个Activity之间跳转问题之activity的四种加载模式
activity的四种加载模式 在android的多activity开发中,activity之间的跳转可能需要有多种方式,有时是普通的生成一个新实例,有时希望跳转到原来某个activity实例,而不是生成大量的重复的activity。加载模式便是决定以哪种方式启动一个跳转到原来某个Activity实例。 在android里,有4种activity的启动模式,分别为: standard: 标准原创 2015-08-20 17:46:12 · 1229 阅读 · 0 评论 -
Android 自定义ViewGroup 实战篇 -> 实现FlowLayout
1、概述上一篇已经基本给大家介绍了如何自定义ViewGroup,如果你还不了解,请查看:Android 手把手教您自定ViewGroup ,本篇将使用上篇介绍的方法,给大家带来一个实例:实现FlowLayout,何为FlowLayout,如果对Java的Swing比较熟悉的话一定不会陌生,就是控件根据ViewGroup的宽,自动的往右添加,如果当前行剩余空间不足,则自动添加到下一行。有点所转载 2014-08-12 16:15:55 · 999 阅读 · 2 评论 -
Android 手把手教您自定义ViewGroup(一)
最近由于工作的变动,导致的博客的更新计划有点被打乱,希望可以尽快脉动回来~今天给大家带来一篇自定义ViewGroup的教程,说白了,就是教大家如何自定义ViewGroup,如果你对自定义ViewGroup还不是很了解,或者正想学习如何自定义,那么你可以好好看看这篇博客。1、概述在写代码之前,我必须得问几个问题:1、ViewGroup的职责是啥?ViewGro转载 2014-08-08 10:41:05 · 860 阅读 · 0 评论 -
View.onMeasure方法的理解
View在屏幕上显示出来要先经过measure(计算)和layout(布局).1、什么时候调用onMeasure方法? 当控件的父元素正要放置该控件时调用.父元素会问子控件一个问题,“你想要用多大地方啊?”,然后传入两个参数——widthMeasureSpec和heightMeasureSpec.这两个参数指明控件可获得的空间以及关于这个空间描述的元数据.更好的方法是你传递View原创 2014-05-12 14:07:38 · 828 阅读 · 0 评论 -
Android 各种设计模式
简介项目开发中发现问题、解决问题这个过程中会出现很多问题,比如重复出现、某个问题的遗留,这些问题的本质就是设计模式。今天记录设计模式的知识点。内容在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。它们的耦合度依次增强。依赖关系:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一转载 2014-05-15 13:31:57 · 651 阅读 · 0 评论 -
BitmapFactory.Options详解
public BitmapinBitmapIf set, decode methods that take the Options object will attempt to reuse this bitmap when loading content.public intinDensityThe pixel原创 2014-05-09 14:51:27 · 20666 阅读 · 2 评论