![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android ApiDemos
fishtosky
这个作者很懒,什么都没留下…
展开
-
Android Api Demos登顶之路(五)
我们来看一下Dialog这个小demo,可以说这个小Demo是前面自定义对话框和自定义 标题栏的一个小小的综合应用。 首先我们给activity定制了一个系统自带的Dialog样式,尔后又通过向WindowFeature 发送请求,为标题设置了一个左侧图标。 值得注意的是我们在Dialog的布局文件中添加了一个Linearout布局,用于让用户可以 动态地向Dialog中添加内容,这里示例原创 2015-07-25 10:38:52 · 440 阅读 · 0 评论 -
Android Api Demos登顶之路(八)
Intent Activity Flags 这个Demo中需要注意的有三点: 一是Intent与PendingIntent的区别:Intent 是马上执行的意图,PendingIntent是先将要执行的意图与Context关联起来,却并不马上执行,而是等到需要执行的时候再去执行。也就是延期执行的意图。正由于pendingintent中 保存有当前App的Context,使得外部App可以如同当前A原创 2015-07-25 21:24:56 · 427 阅读 · 0 评论 -
Android Api Demos登顶之路(六)
本例验证的是finishiAffinity()方法,正如demo中介绍的那样No matter how deep you go,Activity.finishAffinity() will get you back,无论你走多远,它都能把你带 回来。 finishiAffinity()方法,可以关闭当前activity所属的activity栈中所有的activity。如果所有activity都保原创 2015-07-25 12:22:35 · 466 阅读 · 0 评论 -
Android Api Demos登顶之路(七)
android中一个应用是可以包含多个activity的,系统采用栈结构对这些activity进行管理。你可以把栈理解成一个敞口实底的瓶子,当往瓶子里放东西时特点就是“后进先出”,即先放进去的会被压在下面,当往外取时会从瓶口处依次向下取。 在标准启动模式下,当我们开启一个新的activity的时候,原来的activity并没有立即被销毁,而是被系统放到任务栈里,并把当前的activity放到栈的顶原创 2015-07-25 17:06:29 · 337 阅读 · 0 评论 -
Android Api Demos登顶之路(十)Overscan
这个demo实现了对控件的绽放功能,其实要实现这个功能,只需在布局文件中将控件的android:scaleType=”fitXY”这个属性设置为在横向和纵向拉伸即可。 本例中还引用了android:fitsSystemWindows=”true”这个属性,意思是指设置应用布局时是否考虑系统窗口布局;如果为true,将调整系统窗口布局以适应你自定义的布局。比如系统有状态栏,应用也有状态栏时。 本例原创 2015-07-27 19:03:26 · 1262 阅读 · 0 评论 -
Android Api Demos登顶之路(九)
今天我们来看一下Intent这个demo,这个demo为我们展示了打开一个应用选择器的sample。 值得关注的有三个地方: 1.Intent.ACTION_GET_CONTENT :允许用户选择某种类型的数据,并将这个数据返回。 2.intent.setType(String):设置想要打开的数据的类型。 3.Intent.createChooser(intent, title):创建一原创 2015-07-27 07:26:10 · 458 阅读 · 0 评论 -
Android Api Demos登顶之路(十一)Persistent state
这个demo演示了利用 SharedPreferences进行数据的持久化。 在本例中定义了两个文本框,对第一个文本框实现了对数据的内容和选中状态的持久化 所以当我们对文本框中的内容进行了修改,或是选中了某些文本,即使我们此时退出了程序,当我们再次打开程序时,我们依然会得到我们修改后的内容,或是某些文本的选中状态。 在第二个文本框中我们并没有实现持久化,所以当我们退出后再次进入应用时,我们之前原创 2015-07-28 06:56:21 · 540 阅读 · 0 评论 -
Android Api Demos登顶之路(二十四)Translucent Activity
这个demo演示了如何使用样式设置activity的半透明效果。 基本思路: 1.在res的values的目录下新建colors.xml,在其中设置窗体的背景为半透明:#e0000000 2.在style.xml中定义窗体的样式 3.在配置文件中为窗体设定样式。本例中activity.xml和MainActivity都不需要做什么修改,最多你也就是需要把textView的显示文本修改一下,这原创 2015-08-09 05:36:44 · 348 阅读 · 0 评论 -
Android Api Demos登顶之路(二十五)Wallpaper
这个demo演示了如何把桌面作为activity的背景,同样也是通过设置样式完成的,比上一个demo更简单,只要让样式继承android:style/Theme.Wallpaper styles.xml<style name="Theme.Wallpaper" parent="android:style/Theme.Wallpaper"> <item name="android:c原创 2015-08-09 06:35:43 · 441 阅读 · 0 评论 -
Android Api Demos登顶之路(二十五)Action Bar Mechanics
这个demo演示了如何向action bar中添加菜单条目,演示了添加到“更多”选项卡目录下,和添加到action bar首页面的两种不同情况。 MainActivitypublic class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) {原创 2015-08-09 17:19:36 · 353 阅读 · 0 评论 -
Android Api Demos登顶之路(四十六)Loader-->Custom
这个demo演示了如何使用自定义加载器实现对数据的管理。 * 自定义loader的基本步骤: * 1.继承AsyncTaskLoader * 2.定义一个观察者来接收数据源改变的通知(可以是ContentObserver也可以是BroadcastReceiver) * 3.实现抽象方法loadInBackground,在该方法中将开启一个工作线程实行异步加载数据的操作 我们需要在这个原创 2015-08-23 21:38:35 · 471 阅读 · 0 评论 -
Android Api Demos登顶之路(二十七)Action Bar Usage
这个demo演示了actionbar的基本用法:定义menu的布局文件,向actionbar中添加菜单,设置菜单功能。 actions.xml<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" > <item androi原创 2015-08-10 13:44:26 · 421 阅读 · 0 评论 -
Android Api Demos登顶之路(二十六)Action Bar Tabs
这个demo演示了如何使用actionbar的导航标签功能。通常actionbar的tab导航功能是与fragment一起结合起来使用的。基本思路: 1.定义用来显示每个tab中具体内容的fragment 2.获取当前的actionbar 3.向actionbar中添加tab(设置tab的属性,注册tab的切换监听) 4.从actionbar中删除tab 5.设置actionbar的导航模原创 2015-08-10 05:46:07 · 415 阅读 · 0 评论 -
Android Api Demos登顶之路(四十三)Fragment-->Retain Instance
这个Demo演示了如何从另一个Fragment中获取数据,用到的方法是setTargetFragment方法,该方法允许为fragment设置一个目标fragment,该fragment就可以把目标fragment所需要的结果返回给目标fragment。 同时演示了fragment另一个强大的功能:保存fragment实例的功能。就是可以在Activity重新创建时可以不完全销毁Fragment,原创 2015-08-22 09:06:51 · 722 阅读 · 0 评论 -
Android Api Demos登顶之路(二十八)Setting Action Provider
这个demo演示了ActionProvider的用法。Action Provider也可以将一个Action按钮替换成一个 自定义的布局,它能够完全控制事件的所有行为,并且还可以在点击的时候显示子菜单。 为了添加一个Action Provider,我们需要在标签中指定一个actionViewClass属性, 在里面填入Action Provider的完整类名。 我们可以通过继承ActionP原创 2015-08-10 20:01:52 · 414 阅读 · 0 评论 -
Android Api Demos登顶之路(二十九)Share Action Provider
这个demo演示了ShareActionProvider的用法。Android也提供好了几个内置的Action Provider, ShareActionProvider就是其中一个。 menu目录下的share_provider.xml文件<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.andr原创 2015-08-11 07:25:24 · 465 阅读 · 0 评论 -
Android Api Demos登顶之路(四十七)Loader-->Throttle
这个demo演示了如何利用类加载器对自定义的内容提供者共享的数据进行管理 MainActivitypublic class MainActivity extends Activity { // 定义主机名,用以拼接Uri,Uri表明了内容提供的地址,外部应用通过Uri访问内容提供者,来实现对数据的增删改查 private static final String AUTHORITY原创 2015-08-25 12:53:20 · 678 阅读 · 0 评论 -
Android Api Demos登顶之路(四十八)Menu
这个demo演示了menu的简单用法比较简单 res下创建menu目录,在menu目录中 main.xml<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context="com.fishtos原创 2015-08-26 06:15:57 · 298 阅读 · 0 评论 -
Android Api Demos登顶之路(十二)Presentation
这个demo主要演示presentation的用法,presentation是一种特殊的对话框,主要用于在另外一块屏幕上显示内容。值得注意的是在创建presentation前必须把presentation与它的目标屏幕相关联。所以在使用它之前必须为它选择一个Display。 选择display的方法主要有两种 一是利用MediaRouter 二是利用DisplayManager, 本例演原创 2015-07-31 09:49:03 · 8639 阅读 · 2 评论 -
Android Api Demos登顶之路(三十一)Alarm Controller
这个demo演示了闹钟定时器的用法。功能与TimerTask功能类似,但Alarm 即使在当前应用退出后也可以做到Schedule一个任务在指定的时刻执行。 activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas原创 2015-08-12 14:22:31 · 368 阅读 · 0 评论 -
Android Api Demos登顶之路(三十)Display Options
这个demo演示了actionbar的各种布局样式。 activity_main.xml<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pa原创 2015-08-12 08:20:00 · 720 阅读 · 0 评论 -
Android Api Demos登顶之路(三十二)Alarm Service
这个demo演示了如何利用闹钟定时器启动一个服务,用法与上一个demo基本类似,只是启动的是服务而上个demo 发送是的广播。 * 这里需要注意的是:在本例中每隔20秒启动一次服务,而服务在启动后,向系统通知栏中发送了一个通知消息 而后单独开启一个线程去执行服务中需要进行的复杂操作,操作完成后结束服务。 activity_main.xml<LinearLayout xmlns:android=原创 2015-08-13 06:16:33 · 384 阅读 · 0 评论 -
Android Api Demos登顶之路(四十九)Notification-->Incoming Message
这个demo演示了消息提醒的简单用法,当我们点击按钮时会发送一条消息, 消息的摘要信息显示在消息通知栏中,我们可以通过下拉通知栏来查看消息 在我们点击消息时打开描述消息详细信息的Activity activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to原创 2015-08-26 22:36:46 · 561 阅读 · 0 评论 -
Android Api Demos登顶之路(十三)Presentation With Media Router
这个Demo演示了presentation的另一种选择Display的方式:利用MediaRouterAPI。 媒体路由服务一直保持着对系统中可用的音频和视频路由的追踪。当媒体路由被选择或取消选择或者路由首选的presentation显示屏幕发生变化时,它都会发送通知消息。所以一个应用程序可以非常简单地观察这些通知消息来并自动地在首选的presentation显示屏幕上显示或撤消一个present原创 2015-08-01 13:07:57 · 1871 阅读 · 0 评论 -
Android Api Demos登顶之路(三十三)Alert Dialogs
这个demo演示了各种dialogs的定义和样式。 activity_main.xml<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_par原创 2015-08-13 22:45:06 · 308 阅读 · 0 评论 -
Android Api Demos登顶之路(十六)Recreate
本例演示了当我们的activity发生大的变化时,我们可以调用activity的recreate()方法 来对activity进行重新构建,重新构建将产生一个新的activity实例 布局文件:activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too原创 2015-08-03 06:30:26 · 648 阅读 · 0 评论 -
Android Api Demos登顶之路(五十)Notification-->Service Controller
这个demo演示了如何利用服务发送消息通知 activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_paren原创 2015-08-27 00:34:29 · 331 阅读 · 0 评论 -
Android Api Demos登顶之路(五十一)Notification-->Status Bar
这个demo演示了notification的不同的显示方式,以及自定义消息的视图、设置默认的状态 activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" androi原创 2015-08-27 06:50:53 · 607 阅读 · 0 评论 -
Android ApiDemos 登顶之路(一)
江湖传言,只要学会ApiDemo宝典,就掌握了android开发的致胜之道。于是我信了,决定开始自己的ApiDemos登阶之路。并通过重写ApiDemos,达到融汇贯通之效果。如果您也是一名新手,大家可以一起探讨共勉,如果您是大神请指点。废话不多说我们先来解析第一篇:ApiDemos的主界面 /** * 设计思想,这是ApiDemos的启动activity,它继承了ListActivity,原创 2015-07-23 07:38:41 · 651 阅读 · 0 评论 -
Android Api Demos登顶之路(十五)Receive Result
这个demo主要演示了如何从其它的activity中返回预期的结果。要实现这个功能,主要有三个步骤需要注意。 1.在主activity启动子activity时使用startActivityForResult()方法,而不是使用startActivity()方法。 2.使用了startActivityForResult()方法就必须重写onActivityResult(int requestCod原创 2015-08-02 21:47:27 · 416 阅读 · 0 评论 -
Android Api Demos登顶之路(五十三)Service Foreground Service Controller
这个demo演示了如何在前台启动一个服务。由于服务是没有界面的,所以运行在前台的Service必须在屏幕 顶端的Status Bar提供一个Notification以提示用户有Service在运行。 * 前台运行的Service可以通过调用startForeground()使Service在前台运行。stopForeground停止 前台运行,但Service本身不会停止。 * st原创 2015-08-29 23:38:46 · 629 阅读 · 0 评论 -
Android Api Demos登顶之路(十四)Quick Contacts
这个demeo主要演示的是使内容提供者和内容解析者来获取其它应用的数据。Content Provider为不同应用之间共享数据提供了统一的接口,Android系统的每个Content Provider都定义了一个CONTENT_URI,Android中每个Context对象(如Activity)对含有一个ContentResolver,ContentResolver可以根据CONTENT_URI获取原创 2015-08-02 10:04:00 · 649 阅读 · 0 评论 -
Android Api Demos登顶之路(十七)Redirection
这个demo演示的是从另外一个activity中获取用户输入的信息。 基本实现思路是:1.在子activity中用户输入信息时,将用户输入的信息保存到sharepreference中, sharepreference的用法我们在前面的章节中已经介绍过。实现数据的持久化,并可以在当前应用中的 各个activity之间共享这些信息。 2.进入信息显示的主界面时首先获取sharepreferenc原创 2015-08-03 19:46:54 · 366 阅读 · 0 评论 -
Android Api Demos登顶之路(五十二)Search
android 为所有需要提供查询功能的activity提供了两种查询方式:search dialog 和searchview * 这个demo演示了第一种查询方式。 * 基本思路:用户提交查询后,Android系统构造一个Intent并把用户的查询内容放在这个Intent中。然后Android启动你定义的用来处理用户查询的Activity(称为Searchable Activity),并把原创 2015-08-29 13:29:33 · 554 阅读 · 0 评论 -
Android Api Demos登顶之路(十八)Recorder Activities
这个demo演示了通过添加标志位的方式来将任务栈中已经存在的activity推送到前台。 而任务栈中的activities的存放顺序也相应发生变化。 在本例中MainActivity开启secondActivity,secondActivity开启thirdActivity 则任务栈中三个activity的存储顺序为3,2,1。(由上至下,由栈顶至栈底)如果在thirdActivity 中使用标原创 2015-08-03 21:33:02 · 403 阅读 · 0 评论 -
Android Api Demos登顶之路(五十四)Service LocalService Binding
这个demo演示了如何如何利用bindService的方式启动一个本地服务,并实现与服务之间的通讯。 * 本例中所指的本地服务就是启动服务的组件与服务处于同一个应用进程当中。 * 其实在上个例子中我们已经实现了这个demo这里再和大家一起简单回顾一下这个流程: * 1.创建一个继承Service的服务类 * 2.实现onBind方法,并返回一个代理,这里返回服务本身的实例 * 3原创 2015-09-01 00:03:40 · 450 阅读 · 0 评论 -
Android Api Demos登顶之路(五十四)Service IsolateService Controller
这个demo演示了如何创建一个运行在专门的进程中的服务,这个进程从系统的剩余部分独立出来,它自身没有权限。 与服务唯一的通信方式就是通过这个Service API(binding或starting)。 * 但在系统的ApiDemo中我觉得这个Demo看起来非常复杂,但却一点也不实用,将问题复杂化,却又不能很好的突出 IsolateService的特点,所以这里我自己写了一个简单却又非常实用的de原创 2015-08-31 22:12:37 · 867 阅读 · 0 评论 -
Android Api Demos登顶之路(四)
今天研究的是自定义标题栏,这个内容比较简单,核心的代码就两句 发出requestWindowFeature的请求 设置自定义的标题栏布局 但必须要注意的是requestWindowFeature一定要放在requestWindowFeature 之前requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);setContentView(R.layo原创 2015-07-25 07:12:59 · 430 阅读 · 0 评论 -
Android Api Demos登顶之路(十九)Rotation Animation
这个Demo演示了手机屏幕旋转时的动画效果,基本思路就是通过设置Window的属性,实现屏幕旋转时的动画效果, 但要求必须是Api18以上。 在这个小Demo上还出了一点小状况,程序运行时一直看不到效果,开始怀疑是不是自己对rotationAnimation 理解错了?查了一天的资料也没找到问题所在(不过还是有所收获的,呵呵),一天都比较郁闷。 后来才注意到, 当我旋转模拟器的屏幕时,屏幕的原创 2015-08-05 05:59:29 · 914 阅读 · 0 评论 -
Android Api Demos登顶之路(三)
这个demo展示的是一个对话框样式的activity,它看起来像一个对话框,但它实际上是一个activity 只是给这个activity设置了一个对话框的样式。 android允许自定义theme和style,也可以继承已有的 样式,尔后根据需要进行修改。theme应用于application和activity层次,可以为应用或activity 定制统一风格的样式,尔后再使用style针对每个v原创 2015-07-24 21:44:07 · 415 阅读 · 0 评论