
Android
文章平均质量分 92
yongh701
这家伙很聪明,什么都没有留下
展开
-
【Android】底部标签页,Tabhost置底
在《【Android】标签页、计时器、单选按钮、复选按钮》(点击打开链接)我曾经介绍过安卓标签页的使用方式,但是,将标签页放到app的底部似乎更适合现在app所流行的风格,如下图所示。其实将这个Tabhost置底也很简单。和原来的Tabhost一样,如果你要使用安卓的标签页,那么activity_main.xml这个主布局是定死了,其余的,你要新建多少个字标签页,就需要有多有个xml,原创 2017-07-19 10:28:16 · 3045 阅读 · 0 评论 -
【Android】安卓平台上Javascript和Java的交互
本文和《【iOS】WebView的使用、Javascript和Objective-C的交互》(点击打开链接)是姊妹篇,都说了,现在基本上已经大部分的应用都在app镶嵌个网页视图,然后转化为写HTML5的问题,写app变成写网页了。在《【Android】检测是否处于Wifi环境,利用WebView实现浏览器app》(点击打开链接)我曾经介绍过安卓的webview是怎么使用的,但没有说明如何实现Jav原创 2017-07-18 10:34:11 · 847 阅读 · 0 评论 -
【Android】计算器
其实这个安卓计算机,所有的后台思想与《【C#】计算器》(点击打开链接)是一模一样的。Win窗体程序移植到安卓,从C#到Java其实很简单的,因为两者的基本语法都很相像,唯一的难点是安卓的xml布局部分,不像C#窗体能够直接拖。还是如下图一个能够完成基本四则运算的计算器:先在res\values\strings.xml设置按钮相应的字体,以免布局文件警告满天飞: 计算原创 2015-11-24 09:38:24 · 1784 阅读 · 1 评论 -
【Android】关于百分比布局多个LinearLayout嵌套时出现的问题与解决方案
在《【Android】利用相对布局布置更新软件的style为主题对话框的Activity,利用layout_weight属性对表格布局的行划分》(点击打开链接)一文中介绍过如何在安卓的Activity中进行百分比布局。本来,在安卓的res\layout相关的xml布局文件进行百分比布局很简单的,比如如下代码则完成两个Button在一个父LinearLayout中进行7:3划分的横向并排的布局。原创 2015-11-23 11:34:32 · 5242 阅读 · 2 评论 -
【Android】Broadcast Receiver的基本使用,推一条广播给多个Receiver
Android所谓的四大组件:Activity,这个大家只要会写Android程序都知道是一个界面的意思,Service,这个专门用来用来后台推送,就是一条没有界面的线程,具体在《【Android】揭秘如何利用Service与线程制造安卓后台通知栏推送 》(点击打开链接)已经介绍过了,Content Provider这个也很常用,可以快速地直接拿内存卡的数据、Sqlite数据库中的数据,具体在《【原创 2015-09-30 11:26:31 · 5414 阅读 · 0 评论 -
【Android】揭秘如何利用Service与线程制造安卓后台通知栏推送
安卓设备的后台通知栏推送很烦,主要是可以通过利用安卓的Service功能,在app被点击Home键或者返回键之后,依旧可以在挂载后台运行。反正Home键或者返回键只能杀死Activity而不能终结Service的,不像Windows点关闭键默认是关闭程序界面+程序线程。本文的意义相当于在Windows中制造一条线程,或者是对Windows应用程序的关闭键进行重写,让其应用程序的关闭仅仅是隐藏界原创 2015-07-31 17:58:17 · 5831 阅读 · 4 评论 -
【Android】利用AutoCompleteTextView控件联系人自动补全与根据联系人姓名查询电话
自动补全功能是app比较友好的功能之一,但利用AutoCompleteTextView自动补全文本框控件完成起来并不简单,因为其中涉及到AutoCompleteTextView填充数据的适配器,与AutoCompleteTextView的监听器。同时还需要利用ContentResolver去查找设备的通讯录,当然,这与《【Android】利用安卓的数据接口、多媒体处理编写内存卡Mp3播放器app》原创 2015-07-30 20:43:54 · 2299 阅读 · 0 评论 -
【Android】Sqlite数据库增删改查
Android系统内置一个Sqlite数据库,如果app需要使用Sqlite数据库数据库存储数据,Android会为此app生成一个.db文件。这个数据库在data/data//databases里面,其中为该安卓app的工程包名,这个目录必须root后才能看到。在Windows,单机的应用程序,存储数据,基本放到一个文件里面,正如游戏的存档,基本就是把当前的游戏状态存到一个用户很难找到的文件里面原创 2015-07-28 20:59:17 · 20257 阅读 · 4 评论 -
【Android】利用安卓的数据接口、多媒体处理编写内存卡Mp3播放器app
通过调用安卓的MediaPlayer可以直接完成Mp3等主流音频的播放,同时利用ContentResolver与Cursor可以直接读取安卓内在数据库的信息,直接获取当前sdcard中所有音频的列表,无须像《【Android】内存卡图片读取器,图库app》(点击打开链接)一样利用原始的Java代码去遍历整个sdcard卡,直接调用安卓固有的类既便捷又快速。最后,读取出来的Mp3可以通过适配器直接加原创 2015-07-25 14:39:32 · 2517 阅读 · 0 评论 -
【Android】检测是否处于Wifi环境,利用WebView实现浏览器app
由于安卓自带的WebView封装了很多方法,因此浏览器app实现起来算是比较简单的。唯一的难处就是需要自己在补充加载进度条与一些按钮,同时判断用户输入的是否是网址,如下图所示,在打开的时候,如果不是处于Wifi环境给出警告利用WebView实现了一个简易的浏览器,在用户没有输入网址的时候给出提示,具有前进、后退、刷新、停止、跳转的功能。在加载网页的时候,有进度条。基本上原创 2015-07-15 16:46:32 · 3638 阅读 · 0 评论 -
【Android】自定义View、画家(画布)Canvas与画笔Paint的应用——画图、涂鸦板app的实现
利用一个简单的画图app来说明安卓的图形处理类与自定义View的应用。如下图,有一个供用户自己任意画图、涂鸦的app,这里不做那么花俏了,仅提供黑白两色,但可以改变笔尖的粗细。实质上这里的橡皮擦就是白色的画笔,根本不用使用到画笔的setXfermode方法,要搞一堆复杂的工程。用户画完图之后可以保存图像。图像的文件名是当前的时间,保存的位置是sdcard的根目录。制作过原创 2015-07-15 09:03:48 · 8957 阅读 · 4 评论 -
【Android】利用自定义View的重绘实现拖动移动,获取组件的尺寸
下面利用一个app来说明如何利用自定义View的重绘实现拖动移动,获取组件的尺寸。如下图,触摸拖动,或者轻轻点击屏幕都能移动图片。如果碰到文字,则会弹出提示。这里是利用自定义View的重绘来实现的。就是点击屏幕一次,这个自定义View就会重绘一次。虽然这个自定义View里面就只有一个图片。1、首先在res\values\strings.xml中定义各个字体文件,修改之后如下:原创 2015-07-08 10:55:18 · 3154 阅读 · 0 评论 -
【Android】自定义View、画布Canvas与画笔Paint
安卓自定义View其实很简单。这个View可以像《【Android】利用Java代码布局,按钮添加点击事件》(点击打开链接)一样,利用Java代码生成一系列的组件。也可以配合画布Canvas与画笔Paint来使用。下面用一个例子来说明。如下图,有一个自定义布局View,里面摆放着,利用画布Canvas与画笔Paint绘制出来的蓝色正方形与红色文字。在res\layout\activ原创 2015-07-08 10:34:20 · 4367 阅读 · 0 评论 -
【Android】app透明与字体颜色更变、上下文菜单
使用一个小例子,同时说明这三个问题。如下图:这个app背景是红色透明的。里面有一个标签文本,长按弹出上下文菜单,点击其选项,可以更变其颜色。一、app背景透明主要通过修改res\values\styles.xml与AndroidManifest.xml实现的。这里不要在res\values\styles.xml,使用alpha属性,因为这个属性仅支持API 11以上的安卓,也就原创 2015-07-07 09:42:12 · 3601 阅读 · 1 评论 -
【Android】手势输入拨号器
主要是通过这个小app来说明怎么对安卓的app添加手势操作。如下图,用户可以通过手势输入数字,最终,通过手势输入完号码之后,点击“拨号”按钮可以拨号。一、手势准备1、为了实现这个app,我们先要准备0-9这10个数字的手势。首先,你必须先打开的你的安卓模拟器AVD,里面有一个gestures builder的工具,想打开普通app一样,打开它。2、这个系统工原创 2015-07-06 11:10:43 · 1467 阅读 · 0 评论 -
【Android】内存卡图片读取器,图库app
上一篇《【Android】读取sdcard卡上的所有图片并且显示,读取的过程有进度条显示》(点击打开链接)在真机上测试很有问题,经常遇到内存溢出,卡死的情况。因为现在真机上的内存上,2G已经很少见了,基本上都8G的样子了。由于把读取出来的图片一次性地放到app上,而且读取的过程中,又没有正在读取到哪个文件,虽然能够在AVD安卓模拟器上完成基本的功能,但是这个app很不友好。因此采用Handler、原创 2015-07-03 16:10:08 · 2859 阅读 · 0 评论 -
【Android】读取sdcard卡上的所有图片并且显示,读取的过程有进度条显示
虽然下面的app还没有做到快图浏览、ES文件浏览器的水平,遇到大sdcard还是会存在读取过久、内存溢出等问题,但是基本思想是这样的。如下图,在sdcard卡上有4张图片,打开app,则会吧sd卡上的所有图片读取,并显示出来,读取的过程有进度条显示。制作过程如下:1、首先,res\values\strings.xml对字符设置如下,没有什么特别的。原创 2015-07-02 11:02:17 · 4191 阅读 · 2 评论 -
【Android】画廊式的图片浏览器,使用HorizontalScrollView取代Gallery,OnClickListener的参数传递
本来,画廊式的图片浏览器,使用Android中的Gallery就能轻松完成,但是Google说Gallery每次切换图片时都要新建视图,造成太多的资源浪费,已经在安卓api 19之后被彻底废弃,Google推荐使用ViewPager或者HorizontalScrollView来实现Gallery的效果。网上对此的资料太杂,有部分资料写得太高深,完全看不懂。我搞了一个下午,才使用Horizontal原创 2015-06-28 19:35:03 · 2904 阅读 · 0 评论 -
【Android】图片资源的访问与网格式图片浏览器
使用Android的GridView与BaseAdapter能够轻易完成网格式图片浏览器。下面用一个例子还说明,同时说明安卓是如何访问图片资源。其实所谓的图片资源,就是你拷贝到安卓工程的图片。相当于你把几张图片放到网页的站点文件夹,之后用标签引用就这么简单。如下图,在安卓工程中有8张我自己拷贝进去的图片,与自带的ic_launcher.png,共9张图片。下面完成一个网格式图片浏览原创 2015-06-28 10:36:33 · 2294 阅读 · 0 评论 -
【Android】读取sdcard上的图片
Android读取sdcard上的图片是非常简单的事情,下面用一个例子来说明这个问题。首先,在sdcard上有一张已经准备好的img25.jpg下面,需要做的是把这张图片读取到app中显示。做到如下的效果:1、首先你要在AndroidManifest.xml申请读取sdcard的权限,加入一条语句之后,AndroidManifest.xml如下:<manifest原创 2015-06-28 09:00:58 · 10716 阅读 · 0 评论 -
【Android】把外部文件拷贝的AVD安卓模拟器上的sdcard上,并且在AVD中浏览sdcard的文件
首先,实现这一切的大前提是,你的AVD安卓模拟器,在启动之前,有设置好sdcard的大小,如下图。同时,你的AVD安卓模拟器,要处于启动状态。否则无法执行如下的操作。这里以《【Android】利用adt-bundle在Windows下轻松搭建Android开发环境与Hello world》(点击打开链接)在Windows中安装出来的安卓开发环境为例。一、把外部文件拷贝的AVD安卓模原创 2015-06-27 10:46:02 · 8829 阅读 · 0 评论 -
【Android】使用Intent调用系统其它程序,使用onKeyDown对音量键的监听,长按事件
Intent在安卓编程中非常常见,在《【Android】多个Activity之间利用bundle传递数值》(点击打开链接)中已经展示了它可以唤醒其它Activity并在Activity之间传递数据。其实Intent的作用远非于此,它还可以调用系统中其它固有程序,比如拨打电话、发送短信等。onKeyDown也是如此,不仅仅可以对设备的菜单键进行监听,这在《【Android】各式各样的弹出框与对菜单键原创 2015-06-26 09:54:40 · 2647 阅读 · 0 评论 -
【Android】各式各样的弹出框与对菜单键、返回键的监听
Android自带各式各样的弹出框,弹出框也是安卓基本的组件之一。同时安卓程序可以对菜单键、返回键的监听,但在安卓4.0之后就禁止对Home键的屏蔽与监听,强制保留为系统守护按键,如果非要对Home键的屏蔽与监听,就会出现java.lang.IllegalArgumentException: Window type can not be changed after the window is ad原创 2015-06-23 09:55:14 · 4027 阅读 · 0 评论 -
【Android】INSTALL_PARSE_FAILED_MANIFEST_MALFORMED错误与Not targeting the latest versions警告
一、Console控制台出现Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED的错误在安卓开发中,一般选择运行,则会向ADT开始安卓app。如果app无法安卓,在控制台遇到Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED错误,如下图:然后去L原创 2015-06-18 20:37:23 · 4329 阅读 · 0 评论 -
【Android】利用Notification操作设备的通知栏
很多垃圾的安卓应用可以时不时向设备的通知栏推送消息,非常的烦人,这是怎么做到的呢?用一个例子来说明这个问题。如下图:在MainActivity中有三个按钮,每次点击“显示通知”则向设备的通知栏推送一条消息。同时操作设备闪光灯与振动器。“删除最近一条通知”按钮,可以删除本app最近向通知栏推送的一条通知(废话-_-!)“删除所有通知”按钮,可以清除通知栏的所有推送,当然,现在原创 2015-06-18 20:03:49 · 1941 阅读 · 0 评论 -
【Android】日期拾取器、时间拾取器与菜单
在安卓4.4的工程中,每次新建工程同样会出现Helloworld,但不同于以前的版本,现在的Helloworld还自带菜单。这篇文章配合安卓的常用组件日期拾取器、时间拾取器来讲解安卓菜单怎么修改。日期拾取器、时间拾取器两个组件很大,一般情况下,建议使用《【Android】多个Activity之间利用bundle传递数值》(点击打开链接)中介绍的方式,为日期拾取器、时间拾取器新开一个Activity原创 2015-06-18 15:55:53 · 2722 阅读 · 0 评论 -
【Android】下拉列表、拖动条、星级评分条与标签文本的触摸事件
下拉列表、拖动条与星级评分条都是Android中的一些基本组件。写一个小小的程序,来说明其用法。如下图:当下拉列表有值选定之后,则弹出相应的提示信息,哪个值被选择。星际评分条也一样,获取用户选择的星数。标签文本被触摸则显示其被触摸。滑动条,在拖动的时候,则在标签文本显示其值。因为,如果用弹出消息显示其滑动值,很不顺畅。首先,把res\values\strings.x原创 2015-06-17 09:45:59 · 1785 阅读 · 0 评论 -
【Android】进度条与线程之间的消息处理
有点没想到的是,这样的一个小小的程序弄了很久才做完。这个程序看起来很简单的,如下图:一个进度条在不断地增加,累加到超过100%,隐藏载入进度条,并且文字改变成一个“倒数3秒”继续执行。数完三秒之后则继续进行进度条的累加。首先,由于标签文本是动态的,通过Java文件控制,在res\values\string.xml,仅仅需要把程序名称改成“进度条”,没有什么特别的:原创 2015-06-14 15:31:16 · 3691 阅读 · 0 评论 -
【Android】标签页、计时器、单选按钮、复选按钮
写一个小程序把安卓程序中的几个基础组件的基本用法串联起来。如下图所示:在安卓程序中,一个计时器,一直在不断地计时,每10秒弹出一个提示。MainActivity被一个标签页分成两部分,一部分,有单选按钮与复选按钮,最后有一个提交按钮,结果在另一个标签页中显示。用这个程序来说明安卓中标签页、计时器、单选按钮、复选按钮的用法。首先贴上res\values\string.原创 2015-06-10 21:52:55 · 1589 阅读 · 0 评论 -
【Android】利用相对布局布置更新软件的style为主题对话框的Activity,利用layout_weight属性对表格布局的行划分
Android布局中,同样可以与网页的div布局,用百分比来指定宽度。同样也可以像vb,c#,或者网页中的absolute布局一样,利用style为主题对话框的Activity整出模态窗口。比如,如下图所示的布局,在现在各类的安卓应用中很常见的。同时,设定在这个安卓程序一开始就弹出一个更新软件的Activity。那该如何完成呢?1、首先,先到res\values\string.xml中原创 2015-06-07 23:11:49 · 1477 阅读 · 2 评论 -
【Android】多个Activity之间利用bundle传递数值
安卓中的Activity相当于vb,mfc中的窗体,在多个Activity之间传递数据是一个相当核心的功能。下面举个例子来说明这个问题。一、基本目标用户在两个输入框中输入用户名、密码之后,跳到另一个Activity当中,显示其输入的内容,然后这两个Activity能够轻松跳转。二、制作过程1、首先MainActivity的登录界面是沿用了《【Androi原创 2015-06-06 23:00:35 · 5039 阅读 · 1 评论 -
【Android】利用表格布局,Android中xml文件与java的交互制作登录界面
登录界面是图形编程、网页编程的一个经典而又基础的程序。在安卓中,如图所示一个基本登录界面:点击取消按钮就关闭这个程序,点击登录按钮则显示用户输入的用户名与密码。一、基本布局这个程序利用到安卓中的表格布局。先打开res/values/strings.xml中定义几个字符串。之所以不直接把字符串直接写在activity_main.xml的组件中,是因为免得Eclip原创 2015-06-03 21:51:14 · 5664 阅读 · 1 评论 -
【Android】利用Java代码布局,按钮添加点击事件
Android程序不仅可以像《【Android】利用xml文件布局修改Helloworld程序》(点击打开链接)利用xml文件进行布局,也可以利用纯Java代码布局,当然不推荐单单只使用一种布局方式。xml与Java代码布局应该混合存在,正如在网页编程中,html布局与javascript动态控制布局应该是共存的,这里用一个小例子来说明如何用Java代码在Android中进行布局。同时,为按钮添加原创 2015-05-31 20:29:00 · 8803 阅读 · 1 评论 -
【Android】利用xml文件布局修改Helloworld程序
Android环境布置完毕,直接就是一个Helloworld程序,详情请看《【Android】利用adt-bundle在Linux下轻松搭建Android开发环境与Hello world》(点击打开链接),这使得很多人难以理清整个Android项目的基本结构。其实安卓项目,与其它Java工程的项目,SSH、Servlet等,都是采取Java与XML文件联合的方式,形成一个工程的。有几个文件是需原创 2015-05-27 20:49:29 · 6019 阅读 · 0 评论 -
【Android】利用adt-bundle在Linux下轻松搭建Android开发环境与Hello world
本文与《【Android】利用adt-bundle在Windows下轻松搭建Android开发环境与Hello world》(点击打开链接)是姊妹篇,只是这次操作换成了Linux 。拿Ubuntu做例子。还是与Windows一样。由于JDK+Eclipse+ADT+SDK或者JDK+Android Studio在安装的过程中非得联网不可。因此也选用了JDK1.7+解压即用的官方绿色版Android原创 2015-04-14 12:22:07 · 4490 阅读 · 0 评论 -
【Android】利用adt-bundle在Windows下轻松搭建Android开发环境与Hello world
Android开发环境有三种方式,分别是JDK+SDK+Eclipse+ADT、JDK+adt-bundle与JDK+Android Studio。不要使用JDK+SDK+Eclipse+ADT这种方式,不是说什么太复杂的,是因为郭嘉的网络你懂的,打开SDK工具之后就根本就下载不了。Android Studio也是不行的,说好集合大量打开环境。安装的时候却还是需要联网。建议使用JDK+ad原创 2015-04-14 10:55:08 · 32809 阅读 · 3 评论