
Android
文章平均质量分 76
飞鱼一梦
思考是花,行动是果实
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ScrollView 内部子布局如何填充满屏幕
ScrollView 包含一个ViewGroup, 在ViewGroup中填充内容,超过一屏就滚动。但是发现一个问题,在内容不超过一屏的情况下,设置子内容高度为:match_parent ,并不能起到布满屏幕的作用。并且编辑器还提示子布局建议用wrap_content.布局代码如下: <ScrollView android:id="@+id/touch_layout" android:layout_width="match_parent" and原创 2020-08-12 17:14:57 · 1792 阅读 · 1 评论 -
Androidstudio编译jar和aar
在Android项目中经常会需要导入一些第三方的jar文件或者aar文件, 同时我们也会有把我们自己项目编译成jar或者aar文件提供给其他人使用。在Android studio(后文简写as)不同2.0和3.0版本中生成的文件存储路径也有些不同。做一个记录,以防再入坑。1.首先简单介绍aar和jar文件: jar:只包含class文件与清单文件,不包含资源文件,如图片等所有res中的文...原创 2018-07-16 16:09:07 · 4621 阅读 · 0 评论 -
Android File 文件存储
Android使用与其他平台类似的基于磁盘的文件系统(disk-based file systems),在Android文件系统上使用 File 的读写APIs对Andorid的file system进行读写.File 对象非常适合于流式顺序数据的读写。如图片文件或是网络中交换的数据等。1.存储在内部还是外部 所有的Android设备均有两个文件存储区域:”internal” 与 “ex...原创 2018-07-04 15:40:01 · 663 阅读 · 0 评论 -
安卓网络基础
网络数据是应用的主要数据来源,对于一个应用来说连接到互联网是最基本的需求,也是最常用的功能。但是网络总是存在各种各样的稳定性问题,而如何避开这些问题,实现一个稳定的,交互流畅的应用是对开发人员的基本要求。以下总结了一些网络操作的基楚知识和注意点。1.使用网络的权限: 使用网络请求必须要添加的两个请求<uses-permission android:name="android...翻译 2018-07-11 16:38:35 · 284 阅读 · 0 评论 -
Android Intent的使用
Android中最重要的特征之一就是可以利用一个带有action的intent使当前app能够跳转到其他app。我们必须使用intent来在同一个app的两个activity之间进行切换。通常是定义一个显式(explicit)的intent,它指定了需要启动组件的类名。然而,当想要唤起不同的app来执行某个动作(比如查看地图),则必须使用隐式(implicit)的intent。1.建立隐式...翻译 2018-07-05 17:04:32 · 504 阅读 · 0 评论 -
android App分享和接收数据
1.分享文本内容(Send Text Content) ACTION_SEND最直接常用的地方是从一个Activity发送文本内容到另外一个Activity。例如,Android内置的浏览器可以将当前显示页面的URL作为文本内容分享到其他程序。这一功能对于通过邮件或者社交网络来分享文章或者网址给好友而言是非常有用的。下面是一段Sample Code:Intent sendIntent =...翻译 2018-07-06 17:14:42 · 1713 阅读 · 0 评论 -
控制音量与音频播放
Android为播放音乐,闹铃,通知铃,来电声音,系统声音,打电话声音与拨号声音分别维护了一个独立的音频流.默认情况下,按下音量控制键会调节当前被激活的音频流,如果我们的应用当前没有播放任何声音,那么按下音量键会调节响铃的音量。1.设置需要控制的音频类型 AudioTrack Java API 音频流类型: Stream Type Description STR...翻译 2018-07-06 18:06:52 · 1510 阅读 · 0 评论 -
安卓相机基础
1.请求使用相机权限如果拍照是应用的必要功能,那么应该令它在Google Play中仅对有相机的设备可见。为了让用户知道我们的应用需要依赖相机,在Manifest清单文件中添加标签: <manifest ... > <uses-feature android:name="android.hardware.camera" andr...翻译 2018-07-07 10:54:55 · 523 阅读 · 0 评论 -
android App分享和接收数据
1.分享文本内容(Send Text Content) ACTION_SEND最直接常用的地方是从一个Activity发送文本内容到另外一个Activity。例如,Android内置的浏览器可以将当前显示页面的URL作为文本内容分享到其他程序。这一功能对于通过邮件或者社交网络来分享文章或者网址给好友而言是非常有用的。下面是一段Sample Code:Intent sendIntent = n...翻译 2018-07-07 11:02:18 · 1549 阅读 · 0 评论 -
新编译器D8
新的DEX编译器,D8 默认情况下,Android Studio现在使用名为D8的新DEX编译器。DEX编译是将.class 字节码转换.dex为Android Runtime(或Dalvik,适用于旧版Android)的字节码的过程。与之前的编译器(称为DX)相比,D8编译速度更快,输出更小的DEX文件,同时具有相同或更好的应用运行时性能。D8不应该改变您的日常应用开发工作流程。但是,如果...翻译 2018-07-13 17:19:50 · 1711 阅读 · 0 评论 -
如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
说明:当你发布一个应用之后,(取决于具体的发布时间)可能没过几个月 Android 系统就发布了一个新版本。这对你的应用意味着什么,所有东西都不能用了?别担心,向前兼容是 Android 非常关注的事情。用户在升级到新版 Android 的时候,用以前版本的 SDK 构建的现有应用应该不会出问题。这就是 compileSdkVersion, minSdkVersion 和 targetSdkVe...翻译 2019-02-21 14:33:54 · 281 阅读 · 0 评论 -
Fragment的onCreateView方法注意点
系统会在片段首次绘制其用户界面时调用onCreateView方法。 要想为您的片段绘制 UI,您从此方法中返回的 View 必须是片段布局的根视图。如果片段未提供 UI,您可以返回 null。Fragment默认有预加载的功能,默认是预加载左右各一个fragment实例,在预加载的时候会调用onCreateView 方法,当切换Fragment的时候会调用onDestoryView, 但是并不会...原创 2019-02-21 16:33:55 · 7643 阅读 · 0 评论 -
安卓Dialog屏蔽空白区域和物理返回按键的作用
在开发过程中,弹出的Dialog表示正在进行某项后台操作,提示用户等待,而且有些情况下不希望用户手动操作去关闭Dialog,打断这个操作。此时有两种情况 1.用户点击对话框视图其余的空白处 2.用户点击了手机的物理返回按钮AlertDialog.Builder builder = new AlertDialog.Builder(context);//实例化一个对话框屏蔽点击空...原创 2018-07-10 11:02:46 · 1147 阅读 · 0 评论 -
SharedPreference使用
SharedPreferences简介 为了保存软件的设置参数,Android平台为我们提供了一个SharedPreferences接口,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下。一.获取到应用中的SharedPreferences的...原创 2018-07-03 15:07:51 · 10547 阅读 · 1 评论 -
处理运行时变更
在配置变更期间保留对象 如果重启 Activity 需要恢复大量数据、重新建立网络连接或执行其他密集操作,那么因配置变更而引起的完全重启可能会给用户留下应用运行缓慢的体验。 此外,依靠系统通过onSaveInstanceState() 回调为您保存的 Bundle,可能无法完全恢复 Activity 状态,因为它并非设计用于携带大型对象(例如位图),而且其中的数据必须先序列化,再进行反序列化,这可翻译 2017-04-17 16:51:17 · 369 阅读 · 0 评论 -
菜单总结
三种菜单总结一. 选项菜单: 选项菜单是某个 Activity 的主菜单项, 供您放置对应用产生全局影响的操作,如“搜索”、“撰写电子邮件”和“设置”。 如果您开发的应用适用于 Android 3.0(API 级别 11)及更高版本,则选项菜单中的项目将出现在应用栏中。 默认情况下,系统会将所有项目均放入操作溢出菜单中。用户可以使用应用栏右侧的操作溢出菜单图标(或者,通过按设备“菜单”翻译 2017-04-05 19:50:44 · 401 阅读 · 0 评论 -
Android Dialog总结
一.Dialog基础 Dialog 类是对话框的基类,但您应该避免直接实例化 Dialog,而是使用下列子类之一: 1.AlertDialog 此对话框可显示标题、最多三个按钮、可选择项列表或自定义布局。 2.DatePickerDialog 或 TimePickerDialog 此对话框带有允许用户选择日期或时间的预定义 UI。二.创建对话框片段public class FireMiss翻译 2017-04-06 14:28:21 · 292 阅读 · 0 评论 -
项目如何引入GreenDao3.2的记录
在项目的build.gradle脚本文件中加入 mavenCentral()仓库 和 编译插件classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' //Add greendao plugin原创 2017-09-14 10:31:49 · 415 阅读 · 0 评论 -
自定义可点击和滑动的按钮
一. 在最近的项目中需要实现一个这样的自定义View,有点类似一个开关选择按钮,可以点击、可以滑动。在按钮下方是一个ViewPager,根据按钮的切换,同时切换ViewPager的界面。同时滑动ViewPager,也会切换到按钮不同的登录方式。把实现步骤记录一下,方便以后扩展和复用,同时加深一下对自定义View的理解。二. 看下面的几个gif图的演示效果。滑动上面的控件,让ViewPager中原创 2017-09-24 14:37:48 · 3135 阅读 · 3 评论 -
AndroidUI控件的自定义属性
一直对自定义属性停留在知道概念,但每次用都要上网搜索,并且不太明白自定义属性的原理,基于最近的一个自定义控件进行了一下总结,方便日后不用再在需要使用的时候再去谷歌。而且弄清楚了自定义属性的基本原理。一. 基本原理: 1. 每一个UI控件在layout的xml布局中定义,然后在Activity的onCreat方法中通过调用setContentView(R.layout.XX)进行加载调用。(好像是原创 2017-09-24 18:22:00 · 451 阅读 · 0 评论 -
Android 性能优化
Android应用的性能优化是一个容易被忽视的技术点,当一个项目以功能和开发迭代速度为主要考核的时侯,那么极少会关注到它的性能问题。另外随着手机硬件配置的不断提升,对于性能的要求在软件开发上也就显得不那么苛刻。但是一个真正成功的产品,或者说是追求极致体验的产品,性能优化还是值得考虑,尤其时一个应用的被更多的用户和更频繁的使用的时候,性能的重要性就更得以体现。具体如何在性能和功能上平衡根据不同的应用而原创 2018-04-07 18:58:34 · 181 阅读 · 0 评论 -
Acitivity的生命周期和启动模式
Android 有四大组件,Activity是其中最重要也是和一个应用程序中使用最多的组件.由于介绍Activity的文章很多了,特别基础和熟记于心的知识我就不再赘述,我就记录一些我感觉容易混淆和遗忘的知识点和使用方法。生命周期 生命周期图如下: 生命周期呈现如上,值得注意的地方有以下: 1. onResume()方法的执行完后,Activity会请求ActivityManagerServ转载 2018-04-06 23:04:03 · 209 阅读 · 0 评论 -
ListView的Item根布局layout_margin无效分析
**listView每个item之间的边距设置 ,一开始的想法是在item 的根布局设置margin 属性,但是在listView 中margin无法生效,padding是有效的,所以在此研究下失效的原因。 解决办法就是在根布局中再加一层布局, 新增根布局的下一次布局设置margin. 如果可以给根布局设置padding解决问题的话,设置padding也可**解决方法第一种,设置pa...转载 2018-06-22 17:30:08 · 1958 阅读 · 0 评论 -
单选列表和复选列表
经常需要在应用中使用单选和多选列表,单选和多选列表有些是固定选择项的,有些是不固定选择项数目的,需要根据数据个数类型等动态生成单选或者多选列表。一. 先来说说单选列表:单选列表的首选方案是RadioGroup (1) 下面是固定选项个数的RadioGroup实现的单选列表,固定列表可以直接在xml中如下定义<!--<RadioGroup androi...原创 2018-06-23 16:49:38 · 2212 阅读 · 0 评论 -
缓存Bitmap
1.使用内存缓存(Use a Memory Cache) 内存缓存以花费宝贵的程序内存为前提来快速访问位图。LruCache类(在API Level 4的Support Library中也可以找到)特别适合用来缓存Bitmaps,它使用一个强引用(strong referenced)的LinkedHashMap保存最近引用的对象,并且在缓存超出设置大小的时候剔除(evict)最近最少使用到的对象...翻译 2018-07-09 14:25:50 · 367 阅读 · 0 评论 -
View的渐变动画效果(代码实现)
渐变动画(也叫消失)通常指渐渐的淡出某个UI组件,同时同步地淡入另一个。当App想切换内容或View的情况下,这种动画很有用。渐变简短不易察觉,同时又提供从一个界面到下一个之间流畅的转换。如果在需要转换的时候没有使用任何动画效果,这会使得转换看上去感到生硬而仓促。xml布局<LinearLayout xmlns:android="http://schemas.androi...翻译 2018-07-09 15:30:12 · 1307 阅读 · 0 评论 -
Fragment 片段总结
一.基本介绍 当您将片段作为 Activity 布局的一部分添加时,它存在于 Activity 视图层次结构的某个 ViewGroup 内部,并且片段会定义其自己的视图布局。您可以通过在 Activity 的布局文件中声明片段,将其作为 元素插入您的 Activity 布局中,或者通过将其添加到某个现有 ViewGroup,利用应用代码进行插入。不过,片段并非必须成为 Activi翻译 2017-04-10 11:39:33 · 316 阅读 · 0 评论