Android
文章平均质量分 70
悟初境
What I cannot create, I do not understand.
展开
-
Android播放媒体详解
Android多媒体框架包括支持播放各种常见的媒体类型,以便您可以轻松地将音频,视频和图像集成到您的应用程序中。 您可以从存储在应用程序资源(原始资源)中的媒体文件,从文件系统中的独立文件或通过网络连接到达的数据流(均使用MediaPlayer API)播放音频或视频。本文档介绍如何编写与用户和系统交互的媒体播放应用程序,以获得良好的性能和愉快的用户体验。注意:您只能将音频数据播放到标准输出设备。翻译 2016-12-08 20:31:01 · 1876 阅读 · 0 评论 -
发送用户给其他APP
Android 最重要的功能之一是应用能够基于它要执行的“操作”向另一个应用发送用户。 例如,如果您的应用有您要在地图上显示的公司地址,您无需在显示地图的应用中构建 Activity。 而是可以创建使用 Intent 查看地址的请求,Android 系统之后启动可以在地图上显示该地址的应用。正如第一堂课构建您的第一个应用中所讲述的,您必须使用 Intent 在自己应用中的 Activity 之间进行翻译 2016-11-20 20:26:33 · 413 阅读 · 0 评论 -
Android保存文件
Android 使用与其他平台上基于磁盘的文件系统类似的文件系统。 本课程讲述如何使用 Android 文件系统通过 File API 读取和写入文件。File 对象适合按照从开始到结束的顺序不跳过地读取或写入大量数据。 例如,它适合于图像文件或通过网络交换的任何内容。本课程展示如何在您的应用中执行基本的文件相关任务。本课程假定您熟悉 Linux 文件系统的基础知识和 java.io 中的标准文件输翻译 2016-11-01 22:37:30 · 592 阅读 · 0 评论 -
android保存键值对数据
如果您想要保存相对较小键值集合,您应使用 SharedPreferences。 SharedPreferences 对象指向包含键值对的文件并提供读写这些文件的简单方法。 每个 SharedPreferences 文件由框架进行管理并且可以专用或共享。本课向您展示如何使用 SharedPreferences API 存储和检索简单的值。注意:SharedPreferences API 仅用于读写键值翻译 2016-11-01 22:12:27 · 3898 阅读 · 0 评论 -
Fragment间通信
为了重用Fragment UI组件,您应该将每个组件构建为一个完全自包含的模块化组件,以定义其自己的布局和行为。一旦定义了这些可重用的Fragment,您可以将它们与一个Activity相关联,并将它们与应用程序逻辑连接,以实现整个复合UI。通常,您将需要一个Fragment与另一个Fragment进行通信,例如根据用户事件更改内容。所有Fragment到Fragment的通信通过相关联的Activ翻译 2016-11-01 21:49:15 · 427 阅读 · 0 评论 -
构建灵活的UI
在设计支持各种屏幕尺寸的应用时,你可以在不同的布局配置中重复使用 Fragment ,以便根据相应的屏幕空间提供更出色的用户体验。例如,一次只显示一个 Fragment 可能就很适合手机这种单窗格界面,但在平板电脑上,你可能需要设置并列的 Fragment,因为平板电脑的屏幕尺寸较宽阔,可向用户显示更多信息。 图 1: 两个 Fragment,显示在不同尺寸屏幕上同一 Activity 的不同配翻译 2016-11-01 21:29:44 · 388 阅读 · 0 评论 -
创建Fragment
您可以将Fragment视为Activity的模块化部分,它有自己的生命周期,接收自己的输入事件,并且可以在Activity正在运行时添加或删除(类似于可以重用在不同的Activity的“子Activity”)。本课程显示如何使用支持库(Support Library)扩展Fragment类,以便您的应用程序仍然与运行低至Android 1.6的系统版本的设备兼容。在开始本课程之前,您必须将Andr翻译 2016-11-01 21:14:42 · 447 阅读 · 0 评论 -
Android适配不同屏幕
Android使用两个一般属性对设备屏幕进行分类:大小和分辨率。您应该期望您的应用程序将安装在具有大小和分辨率范围的屏幕的设备上。因此,您应该添加一些替代资源,以便针对不同的屏幕大小和分辨率优化应用的外观。有四个一般化的大小:small, normal, large, xlarge四个广义分辨率:低(ldpi),中等(mdpi),高(hdpi),超高(xhdpi)要声明要用于不同屏幕的不同布局翻译 2016-11-01 13:48:20 · 406 阅读 · 0 评论 -
Android支持多语言
从应用代码中提取UI字符串并将其保存在外部文件中总是一个很好的做法。 Android的资源目录使每个Android项目中变得容易。如果您使用Android SDK工具创建项目,这些工具会在项目的顶层创建一个res /目录。在这个res /目录中是各种资源类型的子目录。还有一些默认文件,如res / values / strings.xml,它保存您的字符串值。创建区域目录和字符串文件要添加对更多语言翻译 2016-11-01 13:00:55 · 519 阅读 · 0 评论 -
重新创建Activity
在有些情况下,您的Activity会因正常应用行为而销毁,比如当用户按 返回按钮或您的Activity通过调用 finish()示意自己的销毁。 如果Activity当前被停止或长期未使用,或者前台Activity需要更多资源以致系统必须关闭后台进程恢复内存,系统也可能会销毁Activity。当您的Activity因用户按了返回 或Activity自行完成而被销毁时,系统的 Activity 实例概翻译 2016-11-01 12:35:10 · 436 阅读 · 0 评论 -
停止、重新启动Activity
正确停止和重新启动Activity是Activity生命周期中的重要过程,其可确保您的用户知晓应用始终保持Activity状态并且不会丢失进度。有几种Activity停止和重新开始的关键场景:用户打开“最近应用”窗口并从您的应用切换到另一个应用。当前位于前台的您的应用中的Activity将停止。如果用户从主屏幕启动器图标或“最近应用”窗口返回到您的应用,Activity会重新开始。用户在您的应用翻译 2016-11-01 12:22:37 · 1997 阅读 · 0 评论 -
接收Activity返回结果
启动并不一定是单向的另一个 Activity。您还可以启动另一个 Activity 并 接收返回的结果。要接收结果,请调用 startActivityForResult()(而不是 startActivity())。例如,您的应用可启动相机应用并接收拍摄的照片作为结果。或者,您可以启动“联系人”应用以便用户选择联系人,并且您将接收联系人详细信息作为结果。当然,响应的 Activity 必须设计为返回翻译 2016-11-20 20:37:21 · 690 阅读 · 0 评论 -
允许其他应用启动你的APP
前两课重点讲述一方面:从您的应用启动另一个应用的 Activity。 但如果您的应用可以执行对另一个应用可能有用的操作,您的应用应准备好响应来自其他应用的操作请求。 例如,如果您构建一款可与用户的好友分享消息或照片的社交应用,您最关注的是支持 ACTION_SEND Intent 以便用户可以从另一应用发起“共享”操作并且启动您的应用执行该操作。要允许其他应用启动您的 Activity,您需要在清单翻译 2016-11-20 20:57:04 · 3777 阅读 · 0 评论 -
Android播放音频之按钮控制
控制音量和播放良好的用户体验是可预测的。 如果您的应用程式播放媒体,您的使用者必须使用装置,蓝牙耳机或耳机的硬体或软体音量控制来控制应用程式的音量。类似地,在适当和可用的情况下,播放,停止,暂停,跳过和先前的媒体回放键应当对于由应用使用的音频流执行它们各自的动作。标识要使用的音频流创建可预测的音频体验的第一步是了解您的应用将使用哪个音频流。Android维护一个单独的音频流,用于播放音乐,闹钟,通知翻译 2016-12-08 17:06:16 · 4964 阅读 · 0 评论 -
Android-权限详解
每款 Android 应用都在访问受限的沙盒中运行。如果应用需要使用其沙盒外的资源或信息,则必须请求相应权限。您可以在应用清单中列出相应的权限,声明应用需要此权限。根据权限的敏感性,系统可能会自动授予权限,或者需要由设备用户对请求进行许可。例如,如果您的应用请求打开设备手电筒的权限,系统将自动授予该权限。但如果您的应用需要读取用户联系人,系统会要求用户授权。用户需要在安装应用(运行 Android翻译 2016-11-25 23:46:10 · 3040 阅读 · 0 评论 -
NativeScript-逻辑控制
大家都知道MVC架构,而NativeScript框架采用的是 MVVM 模式, 即 “model view view model”。Model: model 定义和表示数据。 将模型与可能使用它的各种视图分离允许代码重用;View: view表示UI,它在NativeScript中用XML编写。 view通常数据绑定到view-model,因此在JavaScript中对view-model所做的更改翻译 2016-11-25 22:47:35 · 1090 阅读 · 0 评论 -
Android使用NFC传文件
发送文件给其他设备本节将向您介绍如何设计应用程序,以使用Android Beam文件传输将大文件发送到另一台设备。要发送文件,您请求使用NFC和外部存储的权限,测试以确保您的设备支持NFC,并提供URI到Android Beam文件传输。Android Beam文件传输功能有以下要求:适用于大文件的Android Beam文件传输仅适用于Android 4.1(API级别16)及更高版本。要传输翻译 2016-12-04 21:38:19 · 8778 阅读 · 1 评论 -
Android文件共享之检索文件信息
在客户端应用程序尝试使用具有内容URI的文件之前,应用程序可以从服务器应用程序请求有关文件的信息,包括文件的数据类型和文件大小。数据类型帮助客户端应用程序确定它是否可以处理文件,文件大小有助于客户端应用程序为文件设置缓冲和缓存。本课程演示如何查询服务器应用程序的FileProvider以检索文件的MIME类型和大小。检索文件的MIME类型文件的数据类型向客户端应用程序指示它应如何处理文件的内容。要获翻译 2016-12-04 20:59:25 · 912 阅读 · 0 评论 -
Android请求共享文件
当应用程序想要访问由另一个应用程序共享的文件时,请求应用程序(客户端)通常会向共享文件的应用程序(服务器)发送请求。在大多数情况下,请求在服务器应用程序中启动一个Activity,显示它可以共享的文件。用户选择一个文件,之后服务器应用程序将文件的内容URI返回给客户端应用程序。本课将向您展示客户端应用程序如何从服务器应用程序请求文件,从服务器应用程序接收文件的内容URI,以及如何使用内容URI打开文翻译 2016-12-04 20:51:13 · 1238 阅读 · 0 评论 -
Android分享文件
将应用设置为使用内容URI共享文件后,您可以响应其他应用对这些文件的请求。响应这些请求的一种方式是从服务器应用提供其他应用可以调用的文件选择接口。这种方法允许客户端应用程序让用户从服务器应用程序中选择一个文件,然后接收所选文件的内容URI。本课将向您展示如何在应用程序中创建响应文件请求的文件选择Activity。接收文件请求要从客户端应用程序接收文件请求并使用内容URI进行回复,应用程序应提供文件选翻译 2016-12-04 20:44:32 · 1133 阅读 · 0 评论 -
Android设置文件共享
要将应用程序中的文件安全地提供给另一个应用程序,您需要配置应用程序,以内容URI的形式为文件提供安全句柄。 Android FileProvider组件根据您在XML中提供的规范生成文件的内容URI。 本文将向您展示如何将FileProvider的默认实现添加到您的应用程序,以及如何指定要提供给其他应用程序的文件。 注意:FileProvider类是v4支持库( v4 Support Libra翻译 2016-12-04 20:29:59 · 4192 阅读 · 0 评论 -
Android发送数据给其他APP
构造intent时,必须指定希望intent“触发”的操作。 Android定义了几个操作,包括ACTION_SEND,你可能猜到,表示intent是从一个Activity发送数据到另一个,甚至跨过程边界。要将数据发送到另一个Activity,所有您需要做的是指定数据及其类型,系统将识别兼容的接收Activity并将其显示给用户(如果有多个选项)或立即启动Activity(如果只有一个选项)。同样,翻译 2016-12-03 22:17:18 · 1834 阅读 · 0 评论 -
NativeScript-UI入门篇
以下内容来自官方文档的精简版,详细请看 http://docs.nativescript.org/tutorial/chapter-2实时查看效果tns livesync android --watch目录结构└── sample-Groceries ├── app │ └── ... ├── node_modules │ └── tns-core-modu翻译 2016-11-20 22:35:36 · 4541 阅读 · 1 评论 -
启动Activity
不同于使用 main() 方法启动应用的其他编程范例,Android 系统会通过调用对应于其生命周期中特定阶段的特定回调方法在 Activity 实例中启动代码。 有一系列可启动Activity的回调方法,以及一系列可分解Activity的回调方法。本课程概述了最重要的生命周期方法,并向您展示如何处理创建Activity新实例的第一个生命周期回调。了解生命周期回调在Activity的生命周期中,系统翻译 2016-11-01 12:12:54 · 376 阅读 · 0 评论 -
暂停和恢复Activity
在正常使用应用的过程中,前台Activity有时会被其他导致Activity暂停的可视组件阻挡。 例如,当半透明Activity打开时(比如对话框样式中的Activity),上一个Activity会暂停。 只要Activity仍然部分可见但目前又未处于焦点之中,它会一直暂停。但是,一旦Activity完全被阻挡并且不可见,它便停止(将在下一次讨论)。当您的Activity进入暂停状态时,系统会对您的翻译 2016-11-01 12:07:01 · 752 阅读 · 0 评论 -
Android属性动画一
1.传统动画的局限性如下布局: <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/img" android翻译 2016-02-20 16:16:37 · 509 阅读 · 0 评论 -
TextView之setTextColor
简单的方法:方法一:TextView tv = new TextView(this); tv.setTextColor(Color.rgb(255, 255, 255)); 方法二:tv.setTextColor(Color.parseColor("#FFFFFF"));原创 2015-12-11 23:07:27 · 409 阅读 · 0 评论 -
自定义控件View
最后要完成的自定义View是一个topbar,效果如下: 源代码:源代码1.自定义属性在values下新建attr.xml:<resources> <declare-styleable name = "Topbar"> <attr name="title" format="string"/> <attr name="titleTextSize" format翻译 2016-02-15 15:46:39 · 407 阅读 · 0 评论 -
Handler的基本用法
1.尝试在主线程中更新UI:xml文件中: <TextView android:id="@+id/txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" />MainA原创 2016-01-14 20:26:18 · 896 阅读 · 0 评论 -
BaseAdapter的使用与优化
1.什么是数据适配器下图清晰易懂 2.ListView的显示与缓存机制一句话:需要才显示,显示完就回收到缓存,如下图: 3.ListView的Item布局activity_main.xml: <ListView android:id="@+id/lv_main" android:layout_width="match_parent" and翻译 2016-02-11 17:25:04 · 560 阅读 · 0 评论 -
OptionMenu
1.重写方法就好记得return true@Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, 1, 1, "使用说明").setIcon(android.R.drawable.ic_menu_help); menu.add(Menu.NONE, 2, 2,原创 2016-02-09 14:22:37 · 450 阅读 · 0 评论 -
Tab页面1
1.效果如下:2.实现思路:1.目录结构: 2.代码编写: activity_main.xml:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width=翻译 2016-01-28 10:39:10 · 523 阅读 · 0 评论 -
Fragment与Activity通信
1.前提以一个动态加载为例,可以参考加载Fragment2.Activity向Fragment发送数据:基本思路:主页面的布局是一个EditText和一个Button,当点击Button时将EditText的数据发送给Fragment(用Bundle发送),Fragment里只有一个TextView,用于显示数据,同时把Fagment镶嵌在主布局中。 先看主界面activity_main.xml:翻译 2016-01-22 20:19:24 · 351 阅读 · 0 评论 -
加载Fragment
1.静态加载Fragment静态加载的基本思路是:从MainActivity启动SecondActivity,在SecondActivity的布局中有一个<fragment>标签,此标签依附于我们自己写的一个类MyFragment,MyFragment类继承自Fragment,并重写了它的View onCreateView方法,此方法返回一个匹配好的view对象,而此方法中的inflater.inf翻译 2016-01-19 17:17:53 · 559 阅读 · 0 评论 -
自动输入匹配
1.AutoCompleteTextViewxml文件: <AutoCompleteTextView android:id="@+id/actv" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入名字"翻译 2016-01-18 16:27:50 · 411 阅读 · 0 评论 -
Path2.0菜单-Android属性动画
1.效果展开前后: 效果一: 效果二: 用传统动画实现时,还要考虑控件移动后点击事件的移动,比较麻烦,用属性动画就很简单了。2.效果一实现1.布局,采用帧布局<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android原创 2016-02-22 11:43:05 · 886 阅读 · 0 评论 -
ScrollView嵌套多个ListView
1.引入想做一个有两个ListView的布局,上面和下面各一个,于是最初直接写了两个ListView进去,开始他们互不干扰,直到第一个的数据超过屏幕高度,发现根本不能滚动,下面的永远也看不见了。 然后查了一些资料未果,就差用固定高度了,直到想到ScrollView,但ScrollView只能有一个控件,于是可以将两个ListView放进LinearLayout里。不过如果不做任何操作,只会有一个i原创 2016-02-24 20:48:19 · 2185 阅读 · 1 评论 -
Android-SQLite的CRUD
将数据保存到数据库对于重复或结构化数据而言是理想之选。 本课程假定您基本熟悉 SQL 数据库并且可帮助您开始在 Android 中使用 SQLite 数据库。 您在 Android 中使用数据库所需的 API 在 android.database.sqlite 包中提供。定义schema和contractSQL 数据库的主要原则之一是schema:数据库如何组织的正式声明。 schema体现于您用于翻译 2016-11-09 21:05:42 · 390 阅读 · 0 评论 -
Kalilinux安装Genymotion
本文主要介绍在kalilinux下安装genymotion安装Genymotion因为Genymotion 模拟器是基于virtualbox的, 所以务必首先安装virtualbox虚拟机. 由于kali linux 源自带的virtualbox是非常旧的. 所以最好还是去官方网站下面下载一个最新版本的virtualbox安装, 最新的5.0版本新增了不少特性原创 2016-11-06 14:38:14 · 11648 阅读 · 0 评论 -
KaliLinux安装NativeScript环境
安装NativeScript安装新版nodejs虽然kali自带了nodejs,但是并不是最新的,所以更新一下。 运行:curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -结果:## Installing the NodeSource Node.js v6.x repo...## Populating apt-get cac原创 2016-11-06 14:24:21 · 1992 阅读 · 1 评论