
Android应用开发
曼巴精神传承人
一个热爱自由的技术宅
展开
-
DrawerLayout的旋转箭头的实现方式
mMainBar = (Toolbar)this.findViewById(R.id.main_bar); this.setSupportActionBar(mMainBar); mDrawerLayout = (DrawerLayout)this.findViewById(R.id.main_drawer_layout); mToggle = new ActionBarDrawerTo原创 2017-07-23 15:49:17 · 20808 阅读 · 0 评论 -
Android静态注册和动态注册广播的区别
1)静态注册:在AndroidManifest.xml注册,android不能自动销毁广播接收器,也就是说当应用程序关闭后,还是会接收广播。 2)动态注册:在代码中通过registerReceiver()手工注册.当程序关闭时,该接收器也会随之销毁。当然,也可手工调用unregisterReceiver()进行销毁原创 2017-10-22 14:43:28 · 21435 阅读 · 0 评论 -
Android第一次触摸屏幕没有产生事件
今天遇到一个很奇葩的问题,就是第一次点击事件都没法响应,只有第二次点击时才能响应。一直以为是控件没有获取到焦点,所以尝试了很多网络上的方法,都没有效果。最后发现是隐藏导航栏和状态栏带来的后果。我将隐藏状态栏和导航栏的代码注释掉就ok了。这不知道是不是Android的一个bug,只要调用隐藏状态栏,第一次点击或者触摸事件都会被状态栏给监听了,第二次才能被布局控件监听。原创 2017-12-24 14:31:53 · 20848 阅读 · 0 评论 -
Android中sharedUserId的用处
不同APK之间如何互相访问数据?Android为我们提供了两种数据互访的方法: (1) 使用Share Preference(设置为共有)或Content Provider APK通过指定接口和数据供其它APK读取,开发者需要实现接口和指定share的数据 (2)在配置文件AndroidManifest.xml中配置相同的UserId 通过共享userid,拥有相同userid的用户可...原创 2018-05-09 17:53:49 · 28324 阅读 · 0 评论 -
Android选择器selector状态不执行问题
背景最近开发一款apk, 需要适配触摸和遥控器。然后写了一个selector来根据按下,选择等状态来改变item的背景颜色。然后发现一直触摸和遥控器都没办法共存。解决方案item的顺序,控件是根据从上往下匹配状态的,一旦匹配就不会继续往下匹配了item中有多个状态时,它们是且的关系,就是条件都要满足。 <item android:state_focused...原创 2018-04-27 10:25:42 · 22273 阅读 · 0 评论 -
Retrofit2中URL拼接中踩到的坑
@GET("schedule/{key}.js")Observable<String> getSchedule( @Path("key") String key);在上面这段代码中踩到了一个坑,当我们调用这个方法时,如果传进去的值“aaa”时是没有问题的,但是当你传进去“aaa/bbb”时就请求不到了。因为中间带了斜杠。而@Path注解是不允许中间有斜杠的。...原创 2018-05-06 12:52:13 · 25724 阅读 · 0 评论 -
Android使用其他应用打开文件
public class MapTable { /** * -- MIME 列表 -- */ public static final String[][] MIME_MapTable = { // --{后缀名, MIME类型} -- {&amp;quot;.3gp&amp;quot;, &amp;quot;video/3gpp&amp;quot;}转载 2018-08-13 10:58:32 · 33616 阅读 · 1 评论 -
Android出现java.util.ConcurrentModificationException异常
ConcurrentModificationException 抛出的条件是: 一个迭代器在迭代集合的时候 集合被修改。比如我在迭代一个目录集合,并进行目录的删除,这个时候就会出现这个异常。所以我们可以先迭代到一个ArrayList上保存,然后再进行删除操作 下面是我在进行文件删除时使用的代码: @Override protected Boolean doInBackgr...原创 2018-09-06 13:20:48 · 24065 阅读 · 0 评论 -
Android添加启动页 --- 解决应用启动时的白屏问题
当我们启动应用时,因为需要初始化一些资源,这个时候还没有进入Activity,所以会显示白屏,这种效果给用户的体验会很不好。我们可以添加一个启动页来解决这个问题1. 定义一个style<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="a...原创 2018-09-06 14:16:53 · 23002 阅读 · 0 评论 -
DrawerLayout放在Toolbar的下方出现遮罩层阴影
本来是将DrawerLayout放在Toolbar的上方,界面是OK的,当时的布局文件如下:<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"...原创 2018-09-06 17:30:15 · 23762 阅读 · 0 评论 -
Android应用接收开机广播(android.intent.action.BOOT_COMPLETED)失败的原因
Android应用接收开机广播(android.intent.action.BOOT_COMPLETED)失败的原因就在于安装应用后没有先启动。应用需要在安装后启动一次,才能正常接收开机广播。经过验证发现,系统级别的应用,即使不启动,也可以正常接收开机广播。这里的系统级别是指放在/system/app/目录下的应用。所以对于android3.1以后得系统版本,如果要原创 2017-07-18 14:15:26 · 23754 阅读 · 0 评论 -
给第三方apk进行系统签名的几种方式
一、Android中的签名系统默认的四种签名类型:四组默认签名供Android.mk在编译APK使用:1、testkey:普通APK,默认情况下使用。2、platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。3、shared:该APK需要和home/contact原创 2017-06-27 21:02:59 · 58061 阅读 · 4 评论 -
android:descendantFocusability用法简析
开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者C转载 2016-11-21 10:28:21 · 14531 阅读 · 0 评论 -
全局对象Application的使用
Application和Activity,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建。打开每一个应用程序的manifest文件,可以看到activity都是包含在application标签之中,如下: <applica转载 2017-03-30 20:35:32 · 20407 阅读 · 0 评论 -
Android去掉系统状态栏(全屏显示)
// This snippet hides the system bars. 2 private void hideSystemUI() { 3 // Set the IMMERSIVE flag. 4 // Set the content to appear under the system bars so that the content 5 // doesn't原创 2017-04-09 20:47:43 · 21638 阅读 · 0 评论 -
Android Design Support Library
安卓5.0是是有有史以来最重要的安卓版本之一,这其中有很大部分要归功于material design的引入,这种新的设计语言让整个安卓的用户体验焕然一新。我们的详细专题是帮助你开始采用material design的好去处。但是我们也知道,这种设计对于开发者,尤其是那些在意向后兼容的开发者来说是一种挑战。在Android Design Support Library的帮助下,我们为所有的开发者,所有转载 2017-04-17 20:02:19 · 20290 阅读 · 0 评论 -
android:clipToPadding的使用详解
今天来记录一下我这么久以来困扰的一个问题,就是有时候我们在listview设计时会有一些内边距的要求,这时候就比较尴尬,有人说直接用padding不就可以解决这个问题了吗?但是用完后有人发现在上下拉动整个内容时会看到有一个白色的内边距在那里,非常的丑,这时候我们就需要用到Listview的一个强大的属性:android:clipToPadding=false,默认android:clipToPadd转载 2017-04-17 20:17:31 · 21820 阅读 · 0 评论 -
android错误之android.content.res.Resources$NotFoundException:
错误:Android.content.res.Resources$NotFoundException: String resource ID #0x1原因:一般发生在参数 int resId 错误,你把String赋值给int的resId,所以编译器找不到正确的resource于是报错。最简单的例子,检查一下你的Toast.makeText()啊textView.setText啊之类的函数,这种函数转载 2017-04-15 10:25:41 · 20515 阅读 · 0 评论 -
Context.getExternalFilesDir()和Context.getExternalCacheDir()方法
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?通过Context.getExternalFilesDir()方法可以获取转载 2017-05-13 10:59:31 · 20146 阅读 · 0 评论 -
Android应用程序签名详解
本文主要讲解Android应用程序签名相关的理论知识,包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等。1、什么是签名? 如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都知道签名的含义。可往往就是将一些生活中常用的术语放在计算机这种专业领域,大家就开始迷惑了。计算机所做的事情,或者说编程语言所做的事情,不正是在尽可能转载 2017-04-23 13:50:04 · 20635 阅读 · 0 评论 -
Android 设置横屏或竖屏
方法一:在AndroidManifest.xml中配置如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,他有以下几个参数:"unspecified":默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.转载 2017-05-21 09:41:58 · 20823 阅读 · 0 评论 -
setSystemUiVisibility方法和getSystemUiVisibility方法
这两个方法的调用方式如下:getActivity().getWindow().getDecorView().setSystemUiVisibility;getActivity().getWindow().getDecorView().getSystemUiVisibility;setSystemUiVisibility(int visibility)方法转载 2017-06-03 20:44:36 · 20883 阅读 · 0 评论 -
使用FloatingActionButton滑动消失后不再显示
问题背景最近将将SDK升级到25之后遇到一问题就是,FloatingActionButton可以正常显示,但是列表上滑动隐藏后,再向下滑动,FloatingActionButton不在显示出来。之前的版本是OK的。原因分析对于25.1.0版本来说对FloatingActionButton设置View.GONE,FloatingActionButton就会跳过执行Behavior中的on...原创 2018-09-12 13:16:46 · 23274 阅读 · 0 评论