摘要:要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下:setAntiAlias: 设置画笔的锯齿效果。setColor: 设置画笔颜色setARGB:设置画笔的...
阅读全文
随笔分类 - Android应用开发
摘要:要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下:setAntiAlias: 设置画笔的锯齿效果。setColor: 设置画笔颜色setARGB:设置画笔的...
阅读全文
摘要:用户在播放音乐的时候有多个选择,可以使用内置的扬声器,有线耳机或者是支持A2DP的蓝牙耳机。(补充:A2DP全名是Advanced Audio Distribution Profile 蓝牙音频传输模型协定, A2DP是能够采用耳机内的芯片来堆栈数据,达到声音的高清晰度。有A2DP的耳机就是蓝牙立体声耳机。声音能达到44.1kHz,一般的耳机只能达到8kHz。如果手机支持蓝牙,只要装载A2DP协议,就能使用A2DP耳机了。还有消费者看到技术参数提到蓝牙V1.0 V1.1 V1.2 V2.0——这些是指蓝牙的技术版本,是指通过蓝牙传输的速度,他们是否支持A2DP具体要看蓝牙产品制造商是否使用这个
阅读全文
摘要:主要内容:1 鉴别使用的是哪个音频流2 使用物理音量键控制应用程序的音量3 使用物理播放控制键来控制应用程序的音频播放视频讲解:http://www.eyeandroid.com/thread-15877-1-1.html控制应用程序的音量和音频的播放 一个好的用户体验是可预期可控的。如果应用程序是在播放音频,那么显然我们需要做到能够通过硬件按钮、软件按钮、蓝牙耳麦等来控制音量。 同样的,我们需要能够监听Media Button发出的播放、停止、暂停、跳过、上一首等动作,并且在应用程序所使用的Audio Stream上进行对应的响应。鉴别使用的是哪个音频流 首先需要知道的是我们的应用程序会使用
阅读全文
摘要:一:主要内容本文档首先介绍如何通过发送Intent来分享数据内容,这里的数据内容有:文本内容和二进制内容。最后讲解如何一次发送多块数据内容。内容来源自:Android Training的Sending Content to Other Apps对初学者非常有用,欢迎大家参考!二:截图三:文档下载下载地址:http://www.eyeandroid.com/forum-AndroidTrainingVideo-1.html
阅读全文
摘要:一:主要内容1.概述2.选择内部存储还是外部存储3.获取访问External Storage的权限4.保存文件到Internal Storage5.保存文件到External Storage6.查询剩余空间7.删除文件8.Q&ADemo截图二:翻译参考http://www.eyeandroid.com/thread-11349-1-1.html三.视频讲解http://www.eyeandroid.com/thread-12917-1-1.html
阅读全文
摘要:1. 范例说明从Android 3.0开始,Android引入了ActoinBar,不得不说3.0之前android的标题栏确实比较丑,并且还没有任何功能。之前很多应用的顶部栏很多都是仿苹果的,比如微信。随着Android 4.0和Android 4.2的发布和慢慢的推广开来,很多应用也开始使用Google推广的UI设计,而ActionBar是其中相当重要的一部分。无奈google没有发布3.0之前版本的ActionBar的兼容包。还好网上有提供开源的别人开发的,ActionBarShelock,简称ABS.ABS的还有一项值得一提的优点就是,如果你在3.0以上的机子上使用,那么它会调用系统原
阅读全文
摘要:1. 范例说明ViewPager实现滑动切换的效果,但是切换的几个页面只是调用了不同的layout,实际上还是在一个Activity里面,对功能编写就不方便了。所以,采用TabHost和ViewPager结合,使用TabHost切换Activity,使用ViewPager切换界面,从而完善切换效果原理就是把tabhost里原有的的tabcontent隐藏掉,加一个viewpager,捕捉事件进而进行互相刷新的动作。2. 运行结果3. 核心代码tabHost.setOnTabChangedListener(new OnTabChangeListener() { @Override pub...
阅读全文
摘要:1. 范例说明TabHost是Android系统中提供的一个视图容器组件,它可以通过分页显示一组子组件,把程序中的多个Activity组织起来。创建一个TabHost还需要引入TabWidget组件和TabHost.TabSpec组件,TabWidget代表选项卡的位置,Tabhost.Spec则表示每个选项卡中的内容。在本范例的布局文件中,TabWidget的ID必需设置为”@android:id/tabs”,FrameLayout的ID必需设置为”@android:id/tabcontent”。另外,如果MainActivity不是继承于TabActivity,那么在代码中,通过findV
阅读全文
摘要:1.主要内容本小节介绍SharedPreference相关API的使用获取SharedPreference的Handle写Shared Preference读Shared Preference2.视频讲解http://www.eyeandroid.com/thread-11495-1-1.html3.翻译参考Saving Key-Value Sets如果你有一个相对较小的key-value集合需要保存,你应该使用SharedPreferencesAPIs。SharedPreferences对象指向了一个保存key-value pairs的文件,并且它提供了简单的方法来读写这个文件。每一个Sha
阅读全文
摘要:1.主要内容本讲讲解onSaveInstanceState与onRestoreInstanceState的使用。2.视频讲解http://www.eyeandroid.com/thread-11391-1-1.html3.翻译参考存在一些情况,由于普通的程序行为,你的activity会被销毁,比如,当用户点击Back按钮,或者自己调用finish()方法。另外,如果activity被停止了并且很久没被使用,或者前台的系统需要更多的资源,系统也可能会销毁你的activity。当你的activity是因为按Back键或者自己结束的,那么系统认为这个activity实例已经是不需要了,因为你的行为明
阅读全文
摘要:1. 范例说明•android-support-v4.jar,这是谷歌官方给我们提供的一个兼容低版本Android设备的软件包,里面包囊了只有在Android 3.0以上可以使用的api。而ViewPager就是其中之一,利用它我们可以做很多事情,从最简单的导航,到页面切换菜单等等。•ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样。•本Demo向大家演示ViewPager的使用,并在用户未滑动View时,每隔5s钟自动切换到下一个View(循环切换),而当用户有Touch到View时取消5s自动切换功能。并有指示器指示当前处于哪一个View。2. 运行结果3. 核
阅读全文
摘要:1.主要内容本小节介绍onStop与onRestart以及onStart的使用,通过本讲我们能学会应该在onStop与onStart里面执行什么样的操作。2.观看视频讲解http://www.eyeandroid.com/thread-11346-1-1.html3.翻译参考停止与重启Activity在activity生命周期中,恰当的停止与重启activity是很重要的,这样能确保用户感知到程序的存在并不会丢失他们的进度。在下面一些关键的场景中会涉及到停止与重启: .用户打开“最近使用的程序(Recent Apps)”的菜单并从当前app切换到另外一个app,这个时候先前的app是被停止..
阅读全文
摘要:1.主要内容本讲介绍onPause和onResume,主要分析了在onPause函数中应该执行哪些操作。2.视频讲解http://www.eyeandroid.com/thread-11291-1-1.html3.翻译参考在正常的程序使用中,处于前台运行的activity有时会被另外一些可见的组件遮挡,从而造成activity被暂停。比如,一个半透明的activity(类似一个对话框)被打开,先前那个activity就会被暂停。虽然这个activity还有部分可见,但是当前的焦点不在这个activity上,因此它保持在paused状态。不过,一旦这个activity被全部遮挡,处于不可见的状态
阅读全文
摘要:1.主要内容本小节首先对Activity的各个生命周期作简单介绍,然后介绍如何设置Main Activity,最后讲解创建和销毁Activity。2.视频讲解http://www.eyeandroid.com/thread-11253-1-1.html3.翻译参考启动Activity与其他在应用程序中由main()函数作为开端不同,Android系统的启动代码是在一个Activity的实例通过调用对应其生命周期的特定阶段的特定回调方法中进行。其中有一系列的方法来启动Activity,也有一系列的方法来注销一个Activity。这次的教学内容,将会描述生命周期中最重要的函数方法,并向你展示如何在
阅读全文
摘要:1.主要内容本小结在1.3节的基础上,继续完善代码,会书写Button响应事件,在响应事件中新建一个Intent去启动另外一个Activity。2.视频讲解http://www.eyeandroid.com/thread-11210-1-1.html3.翻译参考Respond to the Send Button-响应Send(发送)按钮响应按钮的on-click(点击)事件,打开main.xml布局文件然后在Button(按钮)元素中添加android:onclick属性:<Button android:layout_width="wrap_content" and
阅读全文
摘要:1.Demo说明与演示TranslucentBulr:这个例子和Translucent不同的一点是Blur,也就是显示在当前Activity背后的其它Activity以模糊方式显示。这是通过window对象Flag来设置的Wallpaper:Wallpaper介绍一个Activity如何通过Style把系统Wallpaper作为当前Activity的背景Demo演示2.视频讲解 http://www.eyeandroid.com/thread-11139-1-1.html3.Demo分析这个例子和Translucent不同的一点是Blur,也就是显示在当前Activit背后的其它Activit
阅读全文
摘要:1.Demo说明与演示该Demo显示一个半透明Activity,主要是通过Style和Theme来实现的效果图如下:2.视频讲解http://www.eyeandroid.com/thread-10936-1-1.html3.Demo分析Activity分类示例的最后几个例子是来显示半透明Activity。例子大同小异。实现Activity的半透明效果主要是通过Style和Theme来实现的。看看TranslucentActivity 在AndroidManifest.xml中的定义:<activity android:name=”.app.TranslucentActivity”and
阅读全文
摘要:1.Demo说明与演示该Demo介绍如何在Android获取当前Wallpaper,对Wallpaper做些修改,然后用修改后的图像重新设置Wallpaper,注意要在AndroidMainfest中加权限<uses-permission android:name="android.permission.SET_WALLPAPER" />Demo效果图如下:2.视频讲解http://www.eyeandroid.com/thread-10887-1-1.html3.Demo分析SetWallpaper介绍如何在Android获取当前Wallpaper,对Wall
阅读全文
摘要:1. 范例说明Spinner就是下拉菜单,由于手机画面有限,要在有限的范围选择项目,下拉菜单是唯一、较好的选择。本范例的示范重点在于自定义下拉菜单里的样式,其关键在于调用setDropDownViewResource方法,以XML的方式定义下拉菜单要显示的模样,除此之外本范例还设计了一段动画,当User以触控的方式单击这个自定义的Spinner时,会以一段动画提示User。2. 运行结果3. 编写代码private static final String[] countriesStr = { "成都市", "深圳市", "上海市",
阅读全文
摘要:1. 范例说明大家都应该用过操作系统的文件搜索功能吧!它可以快速协助我们找到想要的文件。如果要在手机制作一个文件搜索功能,又该如何实现呢?其实这个功能并不难,Java I/O的API中提供了Java.io.File对象,只要利用File对象的方法,再搭配Android的EditText、TextView等对象,就可以轻松做出一个简单的手机文件搜索引擎。该范例中使用EditText、Button和TextView3种对象来实现此功能,用户将要搜索的文件名字或关键字输入到EditText中,单击Button后,程序会在根目录中寻找符合的文件,并将搜索结果显示于TextView中,如果找不到符合的文
阅读全文
|