自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Java数值交换

这是一个很经典的题目,面试考试经常碰到,这种场景一般出现在排序中。我们知道交换两个数有很多写法,总归分为四种:中间值交换、加减交换、运算交换、异或交换,网上有很多关于它们的说法,很多人有异或交换比中间值交换慢的说法,我表示怀疑,因为初学java时就知道位运算在java虚拟机里运算速度是最快的,所以我打算模仿他们的实验进行验证,实验方式很简单,对同一组数进行一亿次循环交换,看它们执行的总时长。  ...

2018-05-26 10:39:50 1397

原创 Java中文字符编码判断

在开发中产品允许用户输入中文是一件很头疼的事,不同地方产生的请求传过来的中文字符可能编码不同,存到数据库都变成了可爱的乱码,所以必须先把它转成统一的编码格式,how?public static String getUTFStringByEncoding(String str) { String encode = "UTF-8"; String returnStr = ""; try {...

2018-05-26 09:44:56 2555

原创 JAVA集合

    最近吃了map的暗亏,特来此重新梳理集合理论。        为了使程序能方便地存储和操纵数目不固定的一组数据,JDK类库提供了Java集合,所有Java集合类都位于java.util包中。    与Java数组不同,Java集合中不能存放基本类型数据,而只能存放对象的引用。出于表达上的便利,通常把“集合中的对象的引用”简称为“集合中的对象”。存放引用类型数据,对于基本数据类型,其包装类有...

2018-05-25 17:40:00 306

原创 失物招领APP简介

声明:本简介旨在介绍本人的毕业设计“失物招领APP”,并以该博客的地址作为其官网。该APP的设计与实现均有本人独立完成,本次APP的实践核心用途在于对本人android技术的一次全面综合的运用。服务器作用于局域网,客户端必须与服务端处于相同局域网环境,对于分享功能能否成功取决于该局域网是否连接外网。研究目的:目前,绝大部分人都有网络社交,网络社交的圈子是十分庞大的。失物招领是一件需要人

2017-03-24 14:43:58 8931 31

原创 Html的相关标签

HTML超文本标记语言,是一种解释执行的文本类标记语言,是Internet上用于编写网页的主要语言。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。HTML也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按

2016-11-06 20:48:28 1013

原创 Android中的多媒体音频和视频播放

智能手机的出现使得手机成为一个便携式多媒体播放器。这种看起来随意、理所当然的强大功能在Android中是如何实现的呢?1.音频播放MediaPlayer 装载音频文件:(1)static MediaPlayer create(Content,Uri)从指定Uri来装载音频文件,并返回新创建的MediaPlayer对象。(2)static MediaPlayer create(C

2016-10-31 21:03:59 1408

原创 Android中的ContentProvider

内容提供器,同样作为|Android四大组件,在学习Android的过程中对于它是最陌生的。它的作用是是实现应用程序之间交换数据,ContentProvider是不同应用程序之间进行数据交换的标准API,当一个应用程序需要把自己的数据暴露给其他程序使用时,该应用程序就可通过提供ContentProvider来实现,其他应用程序可通过ContentResolver来操作ContentProvider

2016-10-22 14:19:18 455

原创 Android中SQLite使用拓展

之前学到SQLite的使用,我们注意到在进行增删改查的操作时,每次都要通过书写String类型的SQL语句才能完成操作,通常在这里我们最容易出错,而且出现错误极难找出,原因是SQL语句的对错eclipse是检查不出来的,而且运行的时候它又把错误位置报在别处,所以SQL语句的问题必然困扰很多人。事实上,SQLiteDataBase类中封装了关于增删改查的方法,可以不写SQL语句来完成对数据库的操

2016-10-19 21:00:12 768

原创 Android中自带的SQLite数据库

当我们需要存储大量数据的时候就需要数据库,Android自带了一种轻量级数据库SQLite。SQLite甚至不需要安装和启动服务进程,它只是一个后缀为.db的数据库文件,但它支持SQL语句。关于SQLite的使用需要一个SQLiteDataBase类,该类底层就是一个数据库文件,一个该类代表一个数据库,对数据库的操作也要通过SQLiteDataBase类。 SQLiteDatabase

2016-10-18 21:16:51 27098 4

原创 Android中的文件IO与Preferences

在软件开发中很多情况都需要用到数据的存储,Android中存数据和取数据与Java是相似的,都需要使用流的机制。可以将数据存储到手机内存、SD卡和网络端。Android中较为常用的是java.io.FileOutputStream和java.io.FileInputStream这一对流类,同样也需要通过File类来构造一个具体指向文件或文件夹以便操作的对象,不同的是Android中不通过新建流

2016-10-17 21:07:34 522

原创 Android中的线程、进程和消息处理机制

应用程序的启动运行就是一个进程的触发,我们知道进程是由线程组成的。Handler是Android中用来进行线程间的通信的。1)Android进程分类a.前台进程是用户当前正在使用的进程。只有一些前台进程可以在任何时候都存在。只有在系统内存无法维持当前进程运行时才会被结束,也可以手动降级(即关闭)。如果有以下的情形的那么就是前台进程:这个进程运行着一个正在和用户交互的Activity

2016-10-13 21:18:10 1652

原创 Android中的AlarmManager

闹钟功能任何手机都自带的,闹钟是系统应用程序,既然是应用程序也是可以人为的写出来的。AlarmManager提供了一种系统级的提示服务,允许你安排在将来的某个时间执行一个服务,android就是通过AlarmManger来管理闹钟的。系统级的服务不需要实例化,通过Content.getStstemService()方法获取,进行相关功能设定和事件监听即可使用。AlarmManger的常用方法和

2016-10-13 21:14:29 418

原创 Android中的ActionBar

在之前项目实践中,对于项目中自动显示并一直显示的位于屏幕顶端的标题栏我都采取requestWindowFeature(Window.FEATURE_NO_TITLE)的方法将其隐藏,其实它就是ActionBar了,Android 3.0以后ActionBar取代了传统的tittle bar和menu,成为了二者的结合。在某些应用开发中还是有用的,它的样式是这样的  ActionBar的图标

2016-10-12 23:19:48 444

原创 Android中的菜单

菜单在很多系统中都是有的,通过菜单我们可以做很多额外的操作,大部分时候菜单作用是为了界面美观,将控件收录到一个地方。Android中Menu在手机应用程序中出现较少了,当我们创建Android项目后MainActivity除了自动创建一个TextView还默认显示应用程序的菜单,点击后还能弹出一个选项,而且自动重写了onCreateOptionsMenu方法和onOptionsItemSelect

2016-10-12 23:14:36 735

原创 Android中的BroadcastReceiver

BroadcastReceiver也是Android系统的四大组件之一,是一种全局的监听器,用于监听系统全局的广播消息。那么问题来了,什么是广播。Android作为一种手机系统,在执行很多事情的时候都会以数据形式传输信息出去,例如在手机开机、电池电量低、屏幕锁定等等情况下都会发送,这种数据信息就是广播,能够收到这种信息的就是广播接收器,这些信息由系统发送,就是系统广播,广播也可以通过普通应用程序发

2016-10-12 23:09:35 500

原创 Android中的Service

在手机管理中经常看到进程和服务,进程指的就是App应用在运行,服务就是Android四大组件之一的Service。Service是一个具有较长生命周期但没有用户界面的组件,说它生命周期长并不是它运行中回调的方法多,而是它可以存在很长时间,如果必要可以一直运行,没有用户界面就是看不到,无法与用户进行交互,如果不以特殊的方式表现它的状态是无法获知它的存在的。Android手机中诸如后台下载、音乐后

2016-10-11 22:31:36 389

原创 Android中的SlidingDrawer

Android中的SlidingDrawer可以实现抽屉效果,虽然已经过时了效果还是不错的。SlidingDrawer想必普通的View具有很独特的设定方式,首先它需要一个用于触发抽屉打开关闭的handler组件,一般使用Button或者ImageView等,其次它需要一个指定抽屉内容的content属性。我所说的独特之处在于,handler和content的id是在SlingDrawer中指定的

2016-10-10 20:57:58 912

原创 Android中的Notification

对于通知(Notification)相信没有人陌生,只是不知道指的是什么罢了。Notification是显示在手机状态栏的一种全局效果通知(手机状态栏位于手机屏幕的最上方,用于显示了手机当前的网络状态,电池状态,时间等)。作为四大组件之一,在Android的App中相当常用。在Android中Notification的使用也比较方便,Android为它提供了完整的套路,和AlertDialog

2016-10-09 21:40:08 491

原创 Android中的Fragment

Fragment即是Activity碎片,Fragment作为Activity界面的一部分组成出现,可以在一个Activity中同时出现多个Fragment,一个Fragment亦可在多个Activity中使用。Android3.0引入Fragment的初衷是为了适应大屏幕的平台电脑,Framgment通过对UI组件进行分组,模块化管理,简化了大屏幕UI的设计,可以更方便地在运行过程中动态更新

2016-10-08 22:03:46 440

原创 Android中如何自定义View

我们在做界面的时候发现界面中很多条条目目很相似,只是内容或背景不同,样式基本是一样的,导致开发者一直在重复写一样的代码,在我们看来完全可以作为一个View来使用,但是Android中又没有这样的View。当然我们可以使用ListView,但是它也并非条目数量太多,一般也不需要变动,而且别的界面也需要,我们更倾向于像使用普通View一样的使用方法,所以使用自定义控件比较方便。首先我们需要为自定义

2016-10-08 21:24:11 1100 5

原创 Android中如何批量设置矢量图

Android中在设定控件的时候不论是按钮还是文本,为它附加一个小图片是非常常见的,我们知道Button和TextView等控件都有drawable属性可以在它的文字的上下左右设置图片,通常我们的做法是:从阿里巴巴矢量图找到想要的矢量图设置大小和颜色后以必要的格式下载 然后直接为控件设置。但是如果一个界面甚至一个App需要设置很多个矢量图,这种方法就显得有些麻烦和笨拙了。这里有一个快捷

2016-10-08 21:09:48 1577 2

原创 利用Intent跳转其他程序的拓展

我们知道Intent跳转功能十分强大,可以通过设置属性可以从当前程序跳转到系统程序及其他程序,下面以几个常用的跳转为例做一个简单的实现。布局文件如下<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools

2016-10-02 10:13:54 362

原创 Android中的PopWindow控件

什么事PopWindow呢?其实很常见的,就是一个简单界面本来不在屏幕中,通过点击事件就会在所点击的控件例如Button旁边显示出来,通过点击屏幕周边可以再次隐藏,以下我们以一个分享的例子做一个简单的实现。布局文件如下<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to

2016-10-02 10:06:25 636

原创 Android中的Intent

Intent是一种运行时绑定机制,它的作用是在程序运行是连接Activity、Service和BroadcastReceiver。Intent本意是“请求,意图”,通过Intent可以在程序件跳转和传递数据,Intent包含了具体的请求信息,针对不同的组件包含的信息有所不同,且不同组件的启动方式也不同,一个Intent就是一次对将要执行的操作的抽象描述。Intent启动组件的方式如下

2016-09-29 22:09:44 978

原创 Activity加载模式及数据传递

Activity的启动方式有两种,一种是应用程序启动时默认启动,另一种是通过Intent启动。在做Activity生命周期的实验的时候,我们发现在通过Intent做页面切换的时候新启动的Activity会覆盖到原来的Activity之上,销毁新的Activity后,原来的Activity就会出现,我们知道这是因为Activity栈的关系,其实还与Activity的加载模式有关。Androi

2016-09-29 21:19:44 1076

原创 Activity及Activity的生命周期

Android四大组件五大布局。四大组件是: Activity对于初学者来说是接触最多的一个,当然我也是,Activity是应用程序的表现层,应用程序中每个屏幕的显示都通过继承和扩展Activity类来实现。App中多个页面的切换即是通过多个Activity的相互跳转来完成的。一般情况下,一个Activity类中就需要为它设置一个View,这样我们可以认为这个Activity代表这个界面。

2016-09-28 21:51:01 783

原创 Android中的Dialog对话框

对话框在任何开发中都十分常用,Android中的对话框功能更是全面有强大。App的使用一定程度上依赖于用户交互,良好的体验就要从完善的提示功能开始。Dialog作为警告对话框,在退出或删除时最为常用。在Android中对话框中可以显示文字、按钮、单选多选按钮、进度条、日期时间选择器甚至一个列表项乃至一个界面。对话框主要有四个区域:图标区、标题区、内容区、按钮区,不同的区域都有特定的方法去设

2016-09-27 21:21:09 583

原创 Android中的ImageSwitch控件

ImageSwitch是Android中又一个图片查看小组件,说它是小组件是因为我不太会用,也不怎么常用,它改变显示图片的方式要通过其他控件,整个显示过程都要手动操控,相同的功能Gallery和AdapterViewFlipper能够很好的完成,重要的是ImageSwitch只能显示图片。下面做一个简单的实现,整三张图片试试。布局文件中只需要写入ImageSwitch标签即可,并为它准备两个按

2016-09-27 21:11:40 3864

原创 Android中实现页面滑动——ViewPager

ViewPager可以实现多页面滑动切换以及动画效果,在很多开发场合都十分常用,不仅方便实用而且功能强大。ViewPager类直接继承了ViewGroup类,所以它是一个容器类,可以在其中添加其他的view类。ViewPager是Google SDK自带的附加包v4包的类(即android.support-v4.jar),所以在写布局文件时需要引用完整类名。经验表明这样一个View必然要用到适

2016-09-26 21:23:47 5993 1

原创 Android适配器的使用—GridView、Gellery、AdapterViewFilpper

已经学过ListView、Spinner、AutoCompleteTextView都需要通过适配器的帮助才能完成数据填充和操作,这里还有三种控件亦需要使用适配器才能愉快的玩耍。1)GridView学过了表格布局(TableLayout)、网格布局(GridLayout),相似的还有GridView(网格视图)。网格视图与列表视图(ListView有相同的父类AdapterView),它们的

2016-09-26 21:09:27 811

原创 Android中BaseAdapter在ListView中的应用与优化

作为Adapter的基类,BaseAdapter拥有相当自由的使用空间,虽然使用格式较其他Adapter更加繁复,但是套路基本固定,也不算难。我们知道ListView中的各个条目是可以点击的,但是如果通过自定义布局为每个条目加入按钮控件,ListView本身的点击事件会覆盖按钮的点击事件,导致无法为按钮添加事件,如果使用BaseAdapter的话就可以是实现,而如果子条目的控件中加入按钮控件,Li

2016-09-25 18:58:58 444

原创 Android中的ListView和Adapter的使用

不论是Android开发还是其他方面的开发,我认为列表都是非常常用的一种控件,现在是一个信息时代,更是一个数据时代,庞大的数据和频繁更新的数据人工一条条输入是一件很费力的工作。ListView作为Android中的列表控件同样十分重要,Android为它配备的功能和实现方法也非常多样和强大。在学ListView前看到过很多关于ListView的描述,论使用,一开始就引入适配器,当然最常用的

2016-09-25 16:46:01 766

原创 Android中的AutoCompleteTextView控件

AutoCompleteTextView即自动完成文本框,它与文本编辑框(EditText)相比最大的亮点就是根据输入内容为用户提供参考,并可以通过选择备选项完成输入。主要属性如下completionHint:设置下拉框菜单中的提示标题completionThreshold="1":设置用户至少输入几个字符才会显示提示dropDownWidth:设置下拉菜单的宽度popupBack

2016-09-25 10:24:01 678

原创 Android中Spinner控件及级联Spinner的使用

下拉框是Android中一个较为常用的控件,用于从下拉选项中选出一个选项,这种方式可以很好的节省控件,如中国32个省市和地区,如果挨个放在屏幕里不美观且占位置。它有如下属性entries:设置显示数组数据dropDownWidth:设置下拉列表的宽度dropDownSelector:设置Spinner组件的下拉框被选择的动态效果popupBackground:下拉框的背景

2016-09-25 10:15:30 1889

原创 Android中的Chronometer控件

Chronometer计是一个以1秒间隔逐渐增长的计时器,它是Android中较小却较常用的控件。计时器的启动需要设定一个起始时间基准,得到一个从App启动到启动事件被触发的时间(毫秒),如果不设定,计时器会在App启动是就开始计时,启动事件触发后,直接显示已经计数到的数字。它的额外属性只有一个format,设置格式,内容可以是"%s",可以添加额外的文字,如“计时器%s”,也可以“mm:ss

2016-09-24 23:33:27 903

原创 Android中的切换卡TabWidget布局简介

切换卡由TabHost作为根元素,包含TabWidget和FrameLayout两个子元素,TabWidget表示切换卡中的点击标签,FrameLayout(帧布局)中包含切换卡中需要显示的内容,所有想要显示的不同内容都放在同一个帧布局中。其中TabHost、TabWidget、FrameLayout必须为它们指定Android预设的id:tabhost,tabs,tabcontent(很奇怪的设

2016-09-24 21:58:28 957

原创 Android中的GridLayout布局及Shap,Selector文件的使用

关于GridLayout,它是一个网格布局,Android五大布局有一个TableLayout(表格布局),显然Android中许多布局和控件存在复杂的继承关系,我认为没必要区分它们的区别和来源,只要能到达自己所要完成的界面效果,用什么都是一样的,当然区分清楚也是为了方便使用和记忆。那么继表格布局之后网格布局有什么优势呢,首先,表格布局是不能跨行的,而且跨列仅局限于在当前列有空余空间的情况下,其次

2016-09-24 20:16:42 2532

原创 Android中的进度条、拖动条及星级评分控件

进度条控件(ProgressBar)、拖动条控件(SeekBar)、星级评分控件(RatingBar)在Android开发中都是比较常用的控件。进度条用来显示一个耗时动作的进度,但它并不能自动显示进度的变化需要通过方法来控制。进度条样式大体有两种:水平进度条和圆形进度条(即定时进度条和不定时进度条,也叫确定的进度条和不确定的进度条),默认为圆形进度条。圆形进度条无法显示进度比例,只要其可见就会

2016-09-21 14:07:21 3962

原创 Android中的ScrollView控件

滚动条,它更像一种布局,但ScrollView只能有一个孩子,只有一个孩子怎么滚动呢,所以需要先嵌套一个布局,如线性布局,这样就可以包含多个内容,内容过多就可以滚动。ScrollView只能设置垂直滚动,水平滚动有对应的HorizontalScrollView,同样它只能设置水平滚动。下面为方便测试,进重复显示相同内容。布局XML代码<ScrollView xmlns:android="h

2016-09-21 10:01:14 566

原创 Android中的Calendar日历控件

前面在学习DatePicker控件时,其中包含了Calendar控件。Calendar控件是一个显示日历的控件的,默认为系统当月当天,也可以切换时间,Android为其提供了多样的风格,可以在布局文件中直接为其设计。具体属性如下设置首日 : firstDayOfWeek, 设置星期几是每周的第一天, 默认是周日(值为数字,该数字表示第二周,所以若要设置周一为第一天应填2);选中颜色 : f

2016-09-21 08:30:56 1465

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除