- 博客(46)
- 资源 (4)
- 收藏
- 关注
原创 Android运行时识别API版本
1 /** 2 * 判断Android系统API的版本 3 * 4 * @return 5 */ 6 publicstaticint getAPIVersion(){ 7 intAPIVersion; 8 try{ 9 APIVersion=Integer.valueOf(android.os.Build.VERSION.SDK);1
2015-04-07 16:13:43
343
原创 Fragment错误:IllegalStateException: Can not perform this action after onSaveInstanceState
因为在Fragment所在的Activity中使用了FragmentTransition的 commit方法添加一个Fragment的时候出现的。commit方法是在Activity的onSaveInstanceState()之后调用的,这样会出错,因为onSaveInstanceState 方法是在该Activity即将被销毁前调用,来保存Activity数据的,如果在保存玩状态后再给它添加Fr
2015-04-07 16:13:38
308
原创 android虚拟键盘InputMethodManager使用
在Activity中进行调整:AndroidManifet.xml中属性设置:windowSoftInputMode,可以让程序控制活动主窗口调整的方式"stateUnspecified": 软键盘的状态(隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。这个是软件盘行为的默认设置。 "stateUnchanged":软键盘被保持上次的状态。"stateHidden":当用户选择
2015-04-07 16:13:34
566
原创 事件分发机制
参考出处:http://blog.csdn.net/guolin_blog/article/details/9097463 1.View事件分发demo code:btn =(Button) findViewById(R.id.send);btn.setOnClickListener(newOnClickListener(){ @Override
2015-04-07 16:13:29
420
原创 Canvas、Paint、Path
canvas是依附于view的画布。Paint代表canvas上的画笔,主要用于绘制风格(画笔颜色、画笔粗细、填充风格)。 paint常用属性: 分为两类:图形绘制相关,文本绘制相关 1.图形绘制 setARGB(int a,int r,int g,int b); 设置
2015-04-07 16:13:25
296
原创 @SuppressWarnings
@SuppressWarnings 批注允许您选择性地取消特定代码段(即,类或方法)中的警告。其中的想法是当您看到警告时,您将调查它,如果您确定它不是问题,您就可以添加一个 @SuppressWarnings 批注,以使您不会再看到警告。虽然它听起来似乎会屏蔽潜在的错误,但实际上它将提高代码安全性,因为它将防止您对警告无动于衷 — 您看到的每一个警告都将值得注意。来自为知笔记(Wiz)
2015-04-07 16:13:20
248
原创 自定义控件属性
demo:defineView1.如何自定义控件属性?2.如何动态创建组件?3.接口回调思想设计需要的属性values新建attrs.xml。通过来告诉系统这是自定义的属性xml version="1.0" encoding="utf-8"?> name ="Topbar"> name = "title" format="string"/> name = "
2015-04-07 16:13:16
355
原创 资源文件
1.res目录下的资源文件assets目录下保存着无法通过R清单类访问的原生资源;以下都可以通过R清单访问:/res/animator:属性动画XML;/res/anim:补间动画XML;/res/color:不同状态下颜色列表的XML;/res/drawable:各种图;/res/layout:用户界面布局文件;/res/menu:菜单资源;/res/raw:任意类型原生资源/res/value
2015-04-07 16:13:11
325
原创 QQ 5.0侧滑HorizontalScrollView以及自定义ViewGroup
一般侧滑的实现: 自定义的ViewGroup(menu+content) ouTouchEvent事件改变ViewGroup的LeftMargin。 大于菜单的一半显示,小于则隐藏(使用Scroller或者LeftMargin加Thread)。 新的方法: 继承HorizontalScrollView,由于men
2015-04-07 16:13:07
305
原创 Android应用引导界面-ViewPages使用
ViewPager的功能就是可以使视图滑动。可以用来做导航、页面菜单。使用时需要适配器PagerAdapter。因此需要继承PagerAdapter,实现引导界面至少需要复写4个方法:instantiateItem(ViewGroup, int):用来创建在指定位置上的一个页面;destroyItem(ViewGroup, int, Object):销毁指定位置上的一个页面;getCount():
2015-04-07 16:13:02
507
原创 Android的Matrix类简介
Matrix:图片的处理需要使用到Matrix类,Matrix是一个3 x 3的矩阵,他对图片的处理分为四个基本类型:1、Translate————平移变换2、Scale————缩放变换3、Rotate————旋转变换4、Skew————错切变换 操作方式:set(用于设置Matrix中的值)、pre(先乘,相当于矩阵中的右乘),post(后乘,根据矩阵
2015-04-07 16:13:00
320
原创 Android获取屏幕分辨率及DisplayMetrics
DisplayMetrics简介:Android 可设置为随着窗口大小调整缩放比例,但即便如此,手机程序设计人员还是必须知道手机屏幕的边界,以避免缩放造成的布局变形问题。Android 提供DisplayMetircs 类可以很方便的获取分辨率。Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。为了获取DisplayMetric
2015-04-07 16:12:56
438
原创 versionCode和versionName
Google为APK定义了两个属性:VersionCode和VersionName,他们有不同的用途。VersionCode:对消费者不可见,仅用于应用市场、程序内部识别版本,判断新旧等用途。VersionName:展示给消费者,消费者会通过它认知自己安装的版本。比较常见的是X.Y.Z的版本标示,X更新的话就表示有重大更新,如界面重大更新等,或者不兼容老版本;Y更新表示添加了新的功能;Z表示修订错
2015-04-07 16:12:53
395
原创 Android Studio的安装和基本使用
1.安装截图第三个和第四个是虚拟机相关,电脑上使用虚拟机必须勾选。Android Studio的运行需要 VC++ 环境,Android Studio安装的过程中,会自动安装。2.运行AS前提是正确设置JAVA的JAVA_HOME环境变量,AS的运行需要。启动过程中以前没安装选第二个,不然就导入以前的配置文件。这里检查SDK,慢可能是网络问题,一般需要一会时间,host要修改。检查之后需要更新则会
2015-04-07 16:12:48
431
原创 android 中改变按钮按下时的颜色
原文出处:http://blog.csdn.net/nmsoftklb/article/details/9087233 a、在开发中大家都会遇到这样情况,在一个xxx.xml文件中如果有两个以上的组件有一样的属性功能时,可以把它们共同的内容抽取出来放在styles.xml文件来声明。然后在相应的组件中可以这样引用 : style="@style/widget_listview"
2015-04-07 16:12:44
432
原创 String.split()
关于点的问题是用string.split("[.]") 解决。关于竖线的问题用 string.split("\\|")解决。关于星号的问题用 string.split("\\*")解决。关于斜线的问题用 sring.split("\\\\")解决。关于中括号的问题用 sring.split("\\[\\]")解决。来自为知笔记(Wiz)
2015-04-07 16:12:41
246
原创 List结合ArrayAdapter使用
常见的构造函数是:public ArrayAdapter(Context context,int textViewResourceId,ListT> objects)context:上下文textViewResourceId:ListView子项布局ID,只能是textViewobjects:ListView需要适配的数据。自己继承ArrayAdapter实现更多内容。eg:首先要实现自己的构造函
2015-04-07 16:12:37
334
原创 LayoutInflater作用及使用
作用:用来实例化一个XML文件到指定View中。与findViewById类似,不同的是LayoutInflater找的layout文件下的没有被载入或需动态被载入,对于已经载入的Activity可以使用findViewById来获得其中的界面元素。 获得LayoutInflater的几种方式:1.LayoutInflater inflater = getLay
2015-04-07 16:12:32
321
原创 Content作用
Button bn = new Button(this);是因为创建UI组件时传入1个Context参数,Context代表访问Android应用环境的全局变量信息的API,让UI组件持有1个Context参数,可让这些UI组件通过该Context参数来回去Android应用环境的全局变量,Context本身是一个抽象类,Android的应用的Activity、Service都继承了Context
2015-04-07 16:12:28
313
原创 Bundle数据通过Message传送
Bundle作用:Activity之间存取数据用。是一个键值对。提供了一系列方法用于保存数据。Bundle用法,通过Message发送: 建立对象 Bundle bundle = new Bundle(); 存数据,put各种数据类型,putString/putInt,我这里是李刚老师的CalPrime例程的。UPPER_NUM是一个String, 是通过etNum这个Edi
2015-04-07 16:12:23
497
原创 Java中的goto语句
ListInteger> nums = new ArrayListInteger>(); //计算从2开始,到upper的所有质数 outer: for(int i=2;iupper;i++) { //用i除以从2开始、到i的平方根的所有数 for(int j=2;iMath.sqrt(i);j++) {
2015-04-07 16:12:21
843
原创 onConfigurationChanged不执行的情况
问题:在manifest中配置了如下,这个地方是为了Activity能监听到屏幕方向更改的事件,需要在配置该Activity时指定android:configChanges属性,orientation可以监听到屏幕方向改变的事件。可参考:http://developer.android.com/guide/topics/manifest/activity-element.html
2015-04-07 16:12:16
660
原创 Eclipse android 布局页面Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V
错误现象:XML写了一个布局文件,但是在Graphical Layout中却不显示并提示:Exception raised during rendering: java.lang.System.arraycopy([CI[CII)VException details are logged in Window > Show View > Error Log解决方法:
2015-04-07 16:12:14
386
原创 自定义Button,复写里面的onKeyDown,不起作用
李刚的Android疯狂讲义真是“疯狂”,浪费了3天时间,到底是他的代码有问题,还是怎么的不得而知。 问题描述:他的书里面第3.3基于回调事件处理Propagation的例程。是为了演示基于回调事件传播的例程序,源代码如下:MyButton.javapublicclassMyButtonextendsButton{ publicMyButton(Con
2015-04-07 16:12:11
459
原创 android编译时出现'Unable to resolve target 'android-5'
问题:从网上当的工程出现标题错误,可进入工程里面找并修改成已有的,已有的在sdk\platforms里面重新导入工程,没有错误。原因:SDK版本不符合造成的,一般在Eclipse导入项目时出现错误解决方法:修改工程目录下的default.properties文件里的内容target=android-X改成target=android-N就可以了,X表示针对于当前项目的错误版本号,N表示针对于当前项
2015-04-07 16:12:06
224
原创 Java中的Timer和TimerTask来实现多线程
Timer是一个普通的类,其中有几个重要的方法;而TimerTask则是一个抽象类,其中有一个抽象方法run(),类似线程中的run()方法,我们使用Timer创建一个他的对象,然后使用这对象的schedule方法来完成这种间隔的操作。 public void schedule(TimerTask task, long delay, long period)public v
2015-04-07 16:12:02
266
原创 18.GUI
1、GUI创建 1.GUI从创建windows开始,通常使用JFrame。 JFrame frame = new JFrame(); 2.可通过frame.getContentPane().add(BoarderLayout.CENTER,button)加入按钮、文字字段等组件,两个参数的add()方法可以指定 使用的区域,因它不能直接加上组件,需用它的c
2015-04-07 16:11:59
316
原创 19.网络
1.SocketSocket是个代表两台机器之间网络连接的对象。建立Socket连接需要知道两项关于服务的信息:1.IP地址; 2.端口号端口号:是一个16位宽,用来识别服务器上特定程序的数字,并且0~1023留给已知的特定服务使用。 2.客户端1.使用BufferedReader从Socket上读取数据 建立对服务器Socket连接 Socket chat
2015-04-07 16:11:57
290
原创 17.Java重构(Eclipse)
1.定义在不改变代码行为情况下改善代码设计; 2.好处1.改善设计;2.让软件更加容易理解;3.可以协助寻找bugs;4.可以提升开发速度; 3.使用 3.1结构重构(改名字) 右键类文件,Refactor->Rename 3.2移动(移动到另外一个包) Refactor->Move 3.3修改方法的名
2015-04-07 16:11:55
199
原创 15.java线程(没谱的特点)
1.进程和线程 多进程:操作系统同时运行多个任务; 多线程:就是进程执行中的一个流程;2.多线程程序运行模式 单线程和多线程 3.定义线程方法 线程也是个对象。 创建线程方法: 1、定义一个线程类,继承Thread并重写其中的方法run(),run里面的代码称为线
2015-04-07 16:11:52
314
原创 16.数组、类集框架
1.数组定义方法 静态声明法 int arr[]={1,1,2,3}; 动态声明法 int arr[]=new int[10];//创建一个arr长度为10的 2.类集框架 2.1定义 JDK的一组类和接口,位于java.util包中,主要用于存储和管理对象。 和数组相比:容量自动扩充,存储方式多。
2015-04-07 16:11:50
305
原创 12.异常
1.定义 中断了正常指令流的事件。异常是在运行错的(语法是正确的)。2.分类 异常是一个对象,虚拟机生成的,类是由JDK提供。 Throwable是所有异常错误的父类。 Error:虚拟机运行时产生错误,程序员无能为力,程序员只能处理Exception。 Exception分为两大类:1、生成时异常;2、运行时异常 另
2015-04-07 16:11:48
269
原创 13.序列化和IO流(存储恢复)
1.序列化对象序列化用来存储对象的状态。将被序列化的对象写到文件中,然后可以让你的程序去文件中读取序列化的对象并把他们展开回到活生生的状态。当对象被序列化时,该对象引用的实例变量也被序列化,且所有被引用的对象也被序列化。 如果要让类能够被序列化,实现Serializable,此接口没有任何方法需要实现,唯一目的就是是声明有实现它的类是可以被序列化。objectOutpu
2015-04-07 16:11:45
246
原创 14.内部类和匿名类
1.定义 一个类定义在另外一个类里面。 编译出来都是 外部类$内部类.class. 内部类可以随意使用外部类中的成员变量、函数。2.使用方法 生成内部类的对象. A.B b = new A().new B(); A为外部类,B为内部类。 调用内部类的成员变量,直接j,等同于this.j 调用外部类的成员变量,A.this.i
2015-04-07 16:11:42
284
原创 9.抽象类和抽象函数
1.抽象函数语法特征(天生就是用来当爹的) 定义:只有函数的定义,没有函数体的函数(没有实体)。不能被初始化。 abstract void fun();使用abstract定义的类被成为抽象类 特性: 1.抽象类不能够用new生成对象,天生用来被继承; 子类继承抽象类,再复写抽象函数,使该类就不是抽象函数。即可生成子类对象。 2.如果一
2015-04-07 16:11:40
319
原创 10.包和访问权限
1.java中的软件包 将类放置到一个包当中,需要使用package"包名",为java类提供命名空间 编译时需要使用-d参数(根据包名生成文件夹名) -d空格后面为目录,当前目录( . ) 一个类的全名应该是“包名”+“.”+"类名" 将生成文件放到当前目录下包名的文件夹下。 命名规范: 1.要求所有字母小写;
2015-04-07 16:11:37
316
原创 11.接口
1.概念 定义了接口就是定义了调用对象的标准。 1、接口有无比的适用性,使用接口可以继承超过一个以上的来源,类可以extends某个父类,并且实现其他接口。 2、可以解决多重继承却又不会产生致命方块。 3、当你用接口来作为多态类型时,对象就可以来自任何的地方了。 4、类可以实现多个接口,中间“,”隔开。extend只能有一个,implement可以有好多个。
2015-04-07 16:11:35
282
原创 8.转型
1.对象向上转型 向上转型:将子类的对象赋值给父类的引用 eg:Student s=new Student(); Person p=s; 也是多态的表现,引用与对象可以是不同的类型。父类引用指向子类的对象。 另外,引用类型可以是实际对象类的父类。 p只能调用Person的方法和Student继承后的Person方法。 一个引
2015-04-07 16:11:30
284
原创 6.static、final关键字
1.静态成员变量 1.1既可以用对象名来调用,也可以直接用类名来调用 Person.i = 10; //Person是一个类名。i是成员变量; 类名.成员变量= ; 静态变量的功用:被同类的所有实例变量共享的变量。 tip:静态变量会在该类的任何静态方法执行之前就初始化。 1.2他不是对象层次的变量,是类层次的变量,它是属于某个类的。
2015-04-07 16:11:27
309
原创 7.继承相关(extends、super、override)
1.继承概念 一个类得到了另外一个类的成员变量和成员方法。 只支持单继承,不允许多继承。 是面向对象最重要的特征之一,可以减少类定义的重复代码,重复放在父类。2.作用 减少类定义等重复代码3.语法特点 子类继承父类可以得到父类的成员变量和成员函数,同时子类还可以在此基础上扩展。 class teacher extends pe
2015-04-07 16:11:25
304
信道编码:BCH码学习
2018-06-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人