Android应用
文章平均质量分 57
zgljl2012
这个作者很懒,什么都没留下…
展开
-
Android 之 overridePendingTransition
在Android中,Activity之间的变换也可以添加效果(Android版本需2.0以上)下面是一个简单的示例:MainActivity.javapackage com.temp;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import androi原创 2014-05-30 02:15:38 · 1232 阅读 · 0 评论 -
【Android基础】AsyncTask基础
Android单线程模型当一个程序第一次启动时,Android会同时启动一个主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户的按键事件,用户点击按钮的事件,用户接触屏幕的事件以及屏幕绘图事件等,同时,主线程会把相关的事件分发到对应的组件进行处理。所以主线程通常又叫做UI线程。 在开发Android 应用时必须遵守单线程模型的原则: Android UI操作并不是线原创 2015-07-28 12:26:06 · 1136 阅读 · 0 评论 -
【Android基础】App签名与打包
签名的意义1. 为了保证程序开发者的合法2. 防止部分人通过使用相同的Package Name(包名)来混淆替换已安装的程序3. 保证我们每次发布的版本的一致性(保证签名一致才能升级)签名的过程1. 右键点击Android项目,选择Export(导出),弹出如下对话框:2. 选择Export Android Application(导出And原创 2015-08-09 18:11:31 · 1421 阅读 · 0 评论 -
【Android基础】AsyncTask示例——加载网络图片
网络操作是一个严重的耗时操作,所以从Android 4.0版本开始,网络操作就被严禁放在主线程中,所以网络操作只能放在异步任务中。下面是一个从网络上下载图片的示例,示例分为两个部分: - 异步处理下载图片 - UI线程中处理图片下载的图片是在百度图片里面随便找的:http://img1.ph.126.net/GPS04o8gJYuG4ZOwlx6UQA==/978125544087835399.原创 2015-07-29 16:14:12 · 2243 阅读 · 1 评论 -
【Android基础篇】AutoCompleteTextView和MultiAutoCompleteTextView
从名称上可看出来,这两个控件都是用于输入信息的TextView,AutoComplete已表明这两个控件内容输入都是自动完成的。区别在于一个是Multi,一个不是,具体的区别可通过下面的内容看出来。下面分别介绍着两个控件的使用。AutoCompleteTextView功能动态匹配输入的内容,如搜索引擎在输入框输入信息时,会有一个下拉列表显示与当前输入内容有关的信息。控件特有属性如同width、hei原创 2015-08-09 14:06:51 · 3388 阅读 · 1 评论 -
【Android进阶篇】自定义应用权限
在Android里,不是只有网络、信息、蓝牙等会受到保护,我们需要申请权限才能访问,我们自己编写的应用也可以受到Android系统的保护,让其他应用也需要先获取权限才能访问。下面介绍一下如何给应用的Activity自定义权限。我们会通过三步来实现:首先,创建两个Android项目,第二个访问第一个的Activity;然后,给第一个应用的Activity的设置权限,再让第二个原创 2015-08-10 02:02:39 · 2069 阅读 · 2 评论 -
【Android进阶篇】WebView显示网页详解
概述WebView是Android用于显示网页的控件。通过WebView,我们可以查看本地的网页,也可以查看网络资源。本文内容如下:一、加载本地网页二、加载网络资源三、在WebView中使用JavaScript和CSS四、WebChromeClient介绍五、WebView的其它功能一、加载本地网页使用WebView加载本地网页时,需要把网页原创 2015-08-11 10:47:20 · 8417 阅读 · 3 评论 -
【Android进阶篇】Fragment的两种加载方式
一、概述Fragment(碎片,片段)是在Android 3.0后才引入的,主要的目的是为了实现在大屏幕设备上的更加动态更加灵活的UI设计。这是因为平板电脑的屏幕比手机大得多,所以屏幕上可以放更多的组件,而不是简单地只是把手机上的组件放大。所以Fragment在应用中的是一个可重用的模块化组件,它有自己的布局、自己的生命周期,在一个Activity中可以包含多个Fragment。二原创 2015-08-11 17:18:45 · 24627 阅读 · 0 评论 -
【Android基础】AsyncTask学习——如何取消掉AsyncTask
在AsyncTask中,我们没有办法直接停止掉异步任务,只能通过cancel方法来将AsyncTask标记为cancel状态,即cancel方法只是传递了一个信号量,而不是真的cancel了异步任务。 所以如果希望cancel方法能直接取消掉异步任务,就需要在doInBackground中检测当前状态:当状态是cancel状态,则立刻跳出循环。使用cancel://将task的状态标记为cance原创 2015-08-03 16:32:22 · 4437 阅读 · 0 评论 -
Android实现将Drawable资源ID存储到Sdcard上
过程分为三步: 1. 将资源ID转化为Drawable 2. 将Drawable转化为Bitmap 3. 将Bitmap存储到Sdcard上代码如下:public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState)原创 2015-08-29 12:17:27 · 5886 阅读 · 1 评论 -
【Android进阶】ListView的显示与缓存机制
ListView是Android UI控件里很重要的一个控件。它可以很直观方便地展示一组数据,在实际应用中非常广泛。下面介绍一下ListView的显示与缓存机制。下面是一张ListView显示缓存机制的原理图: 第1部分是一台手机正常显示ListView时的情况,因为手机高度有限,所以显示的数据不会太多,这里显示了7条数据;同样,因为手机内存资源有限,ListView也不会一次性就把所有数据全部加载原创 2015-08-04 16:00:20 · 1936 阅读 · 0 评论 -
【Android适配器系列】BaseAdapter学习笔记
慕客网-Android必学-BaseAdapter的使用与优化-学习笔记什么是数据适配器数据适配器是数据源与视图(View)之间的桥梁,建立了两者之间的适配关系。数据的来源是各种各样的,但View能显示的格式却是有一定要求的,数据适配器是把各种各样的数据源转化成为View能显示的数据格式。优点: 将数据的来源与数据的显示进行了解耦,降低程序的耦合性,提高可扩展性。BaseAdapter是Andro原创 2015-08-04 23:32:30 · 2545 阅读 · 3 评论 -
【Ionic】Error: failed to fetch platform android
在使用ionic创建项目后,需要添加平台,运行如下命令添加Android平台时:ionic platform add android出现错误:Error: failed to fetch platform androidProbably ......Error: read ECONNRESET解决办法: 进入用户目录,如windows用户进入: C:\Users\Administrator原创 2016-05-26 00:58:55 · 5766 阅读 · 0 评论 -
【Android基础篇】Activity的生命周期
Google开发者文档 http://developer.android.com/reference/android/app/Activity.html应用的每个页面都是一个Activity,这些Activity都存放在一个Activity栈中,每次进入某个应用或者应用的某个界面时,新界面这个Activity就压入到Activity栈的顶部;退出或返回的时候就把栈顶的Activity弹出,之前的A原创 2015-07-03 23:18:08 · 1270 阅读 · 0 评论 -
【Android基础】Android SQLite存储自定义对象
Android SQLite存储自定义对象在SQLite数据库中可存储的数据类型有NULL、INTEGER、REAL(浮点型)、TEXT、BOOL,一共是五种数据类型。在Android开发中,我们存储数据的一般的作法是数据库的属性就是类的成员变量,比如: 要存储一个人的姓名和年龄,在类中的是将它们定义为两个成员变量class Person{ private String name;原创 2015-07-25 11:51:15 · 7070 阅读 · 3 评论 -
requestWindowFeature(Window.FEATURE_NO_TITLE);在程序中不起作用的解决方法
今天碰上了一个奇葩问题,折腾了半天总算解决了。requestWindowFeature(Window.FEATURE_NO_TITLE);原创 2014-07-28 19:11:02 · 3366 阅读 · 0 评论 -
【Android基础篇】使用<include>标签分割Layout
在Android的Layout中有一个标签用于引用其它的Layout界面设计文件,类似于javascript的script引用,我们可以用这个标签实现对大型layout界面文件的分割,提高可读性和可维护性。下面是一个简单的示例:fragment_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andr原创 2015-03-27 02:15:23 · 2654 阅读 · 1 评论 -
【Android基础篇】使用ExpandableListView实现自定义的下拉列表
1. ExpandableListView简介下拉列表(可扩展的列表控件)在App应用非常常见,在Android开发中是我们必须掌握的一个控件,下面就来介绍一下ExpandableListView这个控件的开发。ExpandableListView分为组列表项和子列表项,单击组列表项,会显示这组里所有的子列表项。和ListView一样,它也是通过Adapter数据适配器完成数据与显示的衔接,但它使用原创 2015-03-28 00:36:32 · 4806 阅读 · 6 评论 -
【Android基础篇】AlertDialog自定义setView方法的控件响应方法
Android使用AlertDialog弹出对话框时,如果需要自定义对话框界面,就需要用到setView来设置界面,此时,界面上一般都会有需响应或需记录结果的控件,这就需要查找控件了。下面就是一个在自定义对话框中查找控件并进行响应的实例:LayoutInflater layoutInflater = LayoutInflater.from(mContext); Vie原创 2015-03-23 01:33:27 · 15750 阅读 · 1 评论 -
【Android基础篇】重写SimpleAdapter的getView以实现按钮点击响应
SimpleAdapter是四个适配器里最重要的适配器,它不仅实现了数据的绑定,而且可以自定义控件。 在自定义控件时,如果使用了按钮、复选框、单选框等需要点击监听器的控件,就得重写SimpleAdapter的getView函数来实现。 getView是用来刷新ListView的函数,每次在ListView里新增(新显示)一条记录时,getView就会被调用一次(在这次调用里,getView里就会原创 2015-03-23 00:00:27 · 5069 阅读 · 2 评论 -
【Android基础篇】SimpleAdapter动态添加数据时的ListView刷新
在使用SimpleAdapter给listView定制化界面后,如果需要动态添加界面,就需要刷新ListView以显示新增添的数据。 网上有很多通过重写Adapter来实现动态添加数据的方法,虽然这种方法的确可以实现,但到底还是太过麻烦。所以我希望有更简单的办法,找了很久后终于在Google上找到了一个了简单的方法通过重新创建ListView来实现刷新,代码如下:void addItemsTo(S原创 2015-03-23 13:04:46 · 7051 阅读 · 4 评论 -
【Android基础篇】SimpleAdapter重写时响应CheckBox复选框状态改变
在使用自定义ListView时,往往需要自己基于SimpleAdapter重写适配器,承接上篇在自定义Adapter实现按钮响应,今天实现响应CheckBox。 和上篇一样,我们需要在重写的MySimpleAdapter中添加一个MainActivity的变量,用于调用MainActivity的改变List public void setChecked(int position,boolean m原创 2015-03-24 00:56:58 · 3829 阅读 · 0 评论 -
【Android基础篇】SQLite数据库的增删改查基本操作
一、概述SQLite是Android系统的核心数据存储服务之一,它是一个轻型的嵌入式数据库,占用非常少的资源却能提供很好很快的数据存取服务,许多大型的需要数据存储的Android项目都有用到SQLite(也可以用于桌面应用程序)。下面介绍一下SQLite的创建数据库、表的操作,以及基本的增删改查操作。二、基本操作API简介在Android中,SQLiteDatabase类提供了SQLite的底层AP原创 2015-03-31 02:30:40 · 14001 阅读 · 2 评论 -
【Android基础篇】TabHost导航栏添加标签页的三种方法
使用TabHost实现的导航栏有三种添加页面的方法,分别是直接在布局代码的tab里面添加;通过include标签添加;通过Java代码指定另一个Activity添加。下面是三种方法的示例:直接在布局代码的tab里面添加页面使用拖控件拖出来的TabHost,在它的布局层次上会有三个LinearLayout,id分别为tab1、tab2、tab3,如下图所示: 然后我们可以新建一个Layout,在原创 2015-04-15 01:32:52 · 4267 阅读 · 0 评论 -
【Android基础篇】TabHost实现底部导航栏
在App应用中,导航栏往往是用于解决功能分块的最佳控件,而底部导航栏更是导航栏中最常用的,因为它位于屏幕底部,用户操作起来会很方便。下面介绍一下使用Android控件TabHost实现底部导航栏的方法。TabHost可以在控件库里直接拖到页面上,非常方便,但拖出来的是顶部导航栏,如下图所示: 到这里就可以开始实现底部导航栏了,我们首先转到它的XML布局代码里,然后修改成下面这样:<FrameLay原创 2015-04-08 13:55:40 · 3787 阅读 · 1 评论 -
【Android系统】Android系统架构简介
概述Android系统架构如下图: 从上往下一共是四层: 应用程序层、应用程序框架层、函数库与Android运行时层、Linux内核层。下面分别介绍各层:分层介绍应用程序层包含系列的Android核心应用程序,大部分的Android应用也属于这一层,如日历、闹钟、浏览器等。这一层属于用户。应用程序框架层这一层就是普通开发者需掌握的层,我们使用框架里的各个模块来开发应用,这些模块和各种服务都可以复原创 2015-06-17 02:55:30 · 6030 阅读 · 1 评论 -
【Android基础篇】TabWidget设置背景和字体
在使用TabHost实现底部导航栏时,底部导航栏的三个导航按钮无法在布局文件里进行定制,比如设置点击时的颜色、字体的大小及颜色等,这里提供了一个解决办法,就是在代码里进行定制。思路是在Activity里给TabHost添加了分页后,在给导航栏TabWidget的导航按钮逐个添加特效(必须先添加分页,然后才能定制按钮,添加了一个分页,才会生成一个按钮)。下面是布局文件activity_main.xml原创 2015-07-02 14:18:22 · 4129 阅读 · 2 评论 -
Win10系统下Genymotion不能拖曳安装应用的问题
进入Genymotion安装目录对player.exe和genymotion.exe两个程序做如下操作:右键进入属性->兼容性,选择以兼容模式运行,并将操作系统选为Win7,这样就跳过了Win10的权限检查。原创 2016-09-29 02:37:51 · 1758 阅读 · 0 评论