自定义博客皮肤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)
  • 资源 (5)
  • 收藏
  • 关注

原创 枚举,注解

枚举enum其实是一个完整的类,它允许添加任意的方法和字段,以及实现接口等。enum类型的对象可以直接比较,也可以被序列化,在序列化过程中不允许对enum类型进行修改。 1.简单的枚举常量public enum WeekDays { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDY, SATURDAY, SUNDAY}2. 向枚举中添加属性publi

2017-12-07 23:04:02 335

原创 java-I/O(一)

流可以使用两种方式分类:源流,也被称为输入流、初始化数据流;宿流,也被称作输出流、终止数据流。源流和宿流也被称作节点流。流只是连续的数据流,就像保存许多数据的数组,它没有索引的概念。不能在流中来回移动, 数据只能顺序访问。 java中的流有两种类型:面向字节流和面向字符流。面向字节流操作数据的字节,面向字符流操作字符,通常是Unicode字符集。 InputStream和OutputSt

2017-11-28 00:07:31 241

原创 java-异常处理

try-catch语句Java提供了名为try-catch块的结构。将运行可能产生的可疑代码封闭到try代码块中,将异常处理放在catch块中。try { //可能导致异常的代码}catch(ExceptionType exceptionObjectName) { //异常处理}在try块中的代码执行出现异常时,Java将创建exception对象。 在类层次结构中的顶部是Th

2017-11-18 11:27:31 506 1

原创 Java-static和接口(简述)

static根据Sun建议的良好的编程实践,实例变量应该总是被声明为私有的。当类变量被用作常量的时候,被声明为public是可以的。变量:当JVM将类定义加载到内存中时,会为静态字段分配内存空间。静态变量只在执行时被初始化一次。 在任何的实例变量中初始化之前初始化所有的静态字段。静态字段可以直接通过类名来访问,不需要任何对象引用。静态方法静态方法通过类引用调用。可以使用对象引用来调用静态方

2017-11-16 23:44:08 2575

原创 Java-对象创建和成员可见性

如果不提供对super()的显示调用,编译器将会提供不带参数的super()调用,这会导致调用超类的无参构造函数。如果不提供无参构造函数,编译器会调用自己提供的无参构造函数。这只会发生在没有为类定义任何其他构造函数的情况下;否则编译器将会抛出异常。 如果已经定义了构造函数(不管是无参还是有参的),编译器将不会提供无参构造函数创建复制构造函数public class TimeOfDay {

2017-11-15 23:14:10 635

原创 android文件存储

内部存储和外部存储

2016-08-31 13:00:32 657

原创 关于AndroidStudio中提示cannot resolve symble R,但程序可以正常build和run的问题

有的时候我们的java代码中R.是红色的,起初下意识的会认为是R文件没有import或者没有了,但是build succes并且project能够正常run起来。AS会提示cannot resolve symble ‘R’。这貌似不会影响你继续码字,但是总是感觉起来不爽,比如你不再能够在将鼠标放到代码上Ctrl + click鼠标左键了。 - 我是通过这种方式解决的: 通过gradlew cle

2016-07-04 12:59:26 3759

原创 Android 内部存储和Cache简单介绍

Internal Storage你可以直接向内部存储空间写入数据,默认情况下,保存在内部存储的文件是私有化的而其他应用无法进行访问。当你进行了卸载应用,这些文件将被删除。 创建并写入数据到私有化内部存储: 1、调用openFileOutput()并通过参数文件名和运行模式获取FileOutputStream; 2、通过write()写入数据; 3、通过close()关闭IO流。

2016-06-17 13:11:30 2253

原创 android 关于如何设置ListView中item高度问题的解决方法

有的时候,我们在设置ListView中的item的高度时,直接设置xml中的height并不能确定显示的效果确实是设置的数据,通常是在有背景图片的情况下。网上一大堆雷同帖子和(转载)文章,多数是设置item的xml中parent 的minHeight属性:亲测了一下,有的有效而有的没有效果;那么不妨试试这种方式:item的UI包括在两个ViewGroup内,第一

2016-04-11 16:52:03 864

原创 Android 属性动画

Android最简单的属性动画是TranslateAnimation。这样使用:我们假设已经有一个ImageView,控件当然可以自由选取。来看第一个:1、 TranslateAnimation animation = new TranslateAnimation(0, 200, 0, 0); animation.setDuration(1000); Im

2015-09-10 21:57:15 410

原创 IOS:UILbalel笔记

假设我们要自适应的这个UILabel名字为label,而要讲它添加到一个名为testView的UIView类中,下面是自适应的代码实现: //初始化label    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];    //设置自动行数与字符换行    [label setNumberO

2015-08-13 09:43:57 382

原创 IOS:将JSONMdel中的枚举类型转换为字符串(如果你想,当然也可以是任何你想要的数据类型)

先看普通枚举类型的定义:typedef NS_ENUM(NSUInteger, EnumTest){    no_start = 0,    doing = 1,    done = 2};这个枚举类型名字叫:EnumTest,而枚举类型中的这些定义的数据类型是NSUInteger,实际上它通常/只能是Integer相关的类型。但是如果服务器返回JSON的时候,可能是某

2015-08-12 10:20:55 1019

原创 流式布局

自定义ViewGroup需要重写两个方法:(1)onMeasure:测量View的款和高,设置自己的宽和高(2)onLayout:设置子View 的位置onMeasure:根据子View的布局文件,为子View设置测量模式和测量值测量包括:测量模式和测量值;测量模式,有三种情况:1、当设置的容器大小为精确值或者match_parent时,为EXACTLY;2

2015-06-08 23:26:59 594 1

原创 如何在一个activity中关闭另一个activity

在应用程序中可能会出现在一个activity中去关闭其他的activity,起初,我使用startActivitForResult这个方法,在需要关闭的activity的OnActivityResult方法中进行finish。确实是一种方法,但是有条件:比如你的这几个activity必须有关联(一个启动另一个),而且有些不方便。这里有另外两种方法:1、使用静态变量在需要可能会被

2015-03-12 12:17:55 4058

转载 高效开发Android App的10个建议 via-Android开发者

耗电或者内存占用等影响产品效率的每一个问题都会影响App的成功。这就是为什么在开发中确保最优化、运行流畅而且不会使Android系统出问题是至关重要的了。这里不需要讨论高效编程,因为我们不会关心你写的代码是否能够经得起测试。即使高效的代码也是需要时间来运行。今天这篇文章我们就讲讲怎么尽可能地缩短运行时间,以及如何开发用户喜欢的App。  高效地利用线程  建议一:怎么在

2015-03-11 21:06:34 419

原创 SurfaceView实现动画

自定义view存在如下缺陷:>缺乏双缓冲机制;>程序更新View上的图像时,必须重绘View上的整张图片;>新线程无法直接更新View组件。所以,在一些场景下使用自定义View效果并不好。而SurfaceView代替View便是一种很好的替代方案,一般更为推荐使用。SurfaceView一般会与SurfaceHolder结合使用,SurfaceHolder用于向与之关联的Surface

2015-01-07 21:49:03 478

原创 补间(Tween)动画

这种动画类似于Flash。补间动画的定义是动画的开始、结束的关键帧,你只需要定义关键的这两帧就可以了。Android使用animation代表抽象的动画类,它包括以下几个子类:alphaAnimation:透明度改变的动画,变化值从0到1;ScaleAnimation:大小缩放的动画;TranScaleAnimation:位移变化的动画;RotateAnimation:旋转动画;

2015-01-06 22:37:29 384

原创 逐帧(Frame)动画

逐帧动画通常也是采用XML资源文件进行定义的。逐帧动画非常简单,只需要在元素中使用子元素定义动画的全部帧,并制定没帧的持续时间即可。这个文件的定义路径在res文件夹下的anim文件中(当然这个文件通常是需要你自己去创建的)。这个文件的格式如下:<animation-list xmlns:android="http://schemas.android.com/apk/res/android

2015-01-06 21:52:26 490

原创 图形处理 使用drawBitmapMesh扭曲图像

Canvas提供了一个drawBitmapMesh(Bitmap bitmap,int meshWidth, int meshHeight, float[] verts, int vertOffset , int[] colors, int colorOffset, Paint paint)方法,该方法可以对bitmap进行扭曲。比如你可以实现“水波荡漾”、“风吹旗帜”等扭曲效果。  该方法的

2015-01-05 22:49:05 1050

原创 android 存储方式(三)SQLiteDatabase

数据库是Android 中常用的功能,这里直接贴出代码:activit_main.xml:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_wi

2014-12-23 22:15:40 385

原创 android 存储方式(二) sharedPreferences

sharedPreference是以键值对(key-value)的形式进行存储的,它在应用中主要用来存储一些设置相关的信息参数。基本用法:SharedPreference preference = Context.getSharePreference("存储的文件名称",Context.MODE_PRIVATE);通过SharedPreference.edit方法获得一个Editor对

2014-12-11 23:36:27 522

原创 android 存储方式(一) SD卡的存储

在实际的开发过程中,Android提供了五种方式存储数据:1、文件的存储;2、使用sharedpreference进行存储数据;3、SQlite数据库进行存储;4、使用contentProvider进行存储;5、使用网络存储数据JAVA提供了一套完整的IO流体系访问磁盘上的文件内容。Android支持这种访问方式来访问存储设备上的文件。OpenFileOutput和OpenFIleIn

2014-12-11 23:01:23 684

原创 Notification微

当系统在不想妨碍操作的情况下通知用户,可以使用

2014-11-12 15:30:47 318

转载 uses-permission权限列表

android.permission.ACCESS_CHECKIN_PROPERTIES允许读写访问”properties”表在checkin数据库中,改值可以修改上传android.permission.ACCESS_COARSE_LOCATION允许一个程序访问CellID或WiFi来获取粗略的位置android.permission.ACCESS_FINE_LOCAT

2014-10-28 11:13:10 206

原创 ExpandableListView的简单代码示例

private List groupArray; private List> childArray; public class ExpandableAdapter extends BaseExpandableListAdapter { Activity activity; public ExpandableAdapter(Activity a) { activity = a

2014-10-24 10:41:38 376

原创 tomcat环境变量的配置

一、配置JDK环境变量

2014-10-20 11:20:14 590

原创 正则表达式

他主要用来判断一个字符串是否满足某种格式,或者一个字符串是否含有另一个

2014-10-17 13:44:18 317

原创 如何配置端口、应用、欢迎界面

下面是记录如何使在本地浏览器

2014-10-17 10:10:24 472

原创 双击事件的简单实现

双击屏幕处理事件;先写

2014-09-12 16:48:14 454

转载 防止反编译简单做法

作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代

2014-09-09 13:31:39 648

转载 判断程序是否第一次运行

在Android中,在应用第一次启动或者应用的新版本的第一次启动的时候,为了判断应用是首次启动应用程序,最简单的方法,就是:1、从manifest中读取到android:versionCode,2、然后将其与preference中的versioncode做比较,3、当preference中的versioncode小于manifest中的版本号时,则代表此次启动为该版本的首次

2014-09-05 16:23:52 804

原创 增加手势和识别手势

gestureoverlayview组件是Android提供给开发者所使用的控件,但是这个

2014-09-05 15:41:52 525

原创 listview分页效果

一般情况下,如果要加载的数据比较

2014-08-26 11:17:12 596

原创 获取设备的部分信息

获取系统部分信息importjava.util.UUID;importandroid.app.Activity;importandroid.content.Context;importandroid.os.Bundle;importandroid.telephony.TelephonyManager;importandroid.view.Menu;importandro

2014-08-25 17:48:16 344

原创 GPS获取地理位置

首先将通过GPS获取地理位置的权限添加到manifest中:"android.permission.ACCESS_FINE_LOCATION"/>支持GPS的核心API:locationmanager,locationprovider,location。核心代码:LocationManager lManager;…..lManager = (LocationManager) g

2014-08-25 17:45:51 1080

转载 android 设备分辨率

android中dip、dp、px、sp和屏幕密度1. dip: device independent pixels(设备独立像素).不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA推荐使用这    这个,不依赖像素。     这里要特别注意dip与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正确,有可能导致dip不能正常显示

2014-08-25 17:43:26 522

原创 点击返回键两次退出程序

不得不说这是一个简单而常用的功能。//关键代码,需要一个时间定时器private static boolean isExit = false; public void exitJudged(){ Timer timer = null; if(false == isExit){ isExit = true; Toast.makeText(getApplicationCon

2014-08-25 17:42:41 377

原创 viewpager的一个简单实现

事实上,viewpager在实现上不止一种方式,这里其中只记录的一种。Viewpager的使用可能会导致一个文件夹下的代码量很大。Viewpager(通过textview设置了标题,一个图片的移动表示当前标题页):

2014-08-25 17:39:17 402

原创 tabactivity的简单使用

Tabactivity当中已经有了自己的tab,他不需要解析一个XML文件,可以通过gethost()方法获取tabhost。事例代码如下:@SuppressWarnings("deprecation")public class MainActivity extends TabActivity { @Override protected void onCreate(Bundle s

2014-08-25 17:35:34 566

原创 spinner的简单使用

只要不想让spinner在xml文件中写死,下列JAVA代码便是另一种方式:// 找到Xml中定义的下拉列表 Spinner spinner = (Spinner) findViewById(R.id.spinner); // 准备一个数组适配器 ArrayAdapter adapter = ArrayAdapter.createFromResource( MainActi

2014-08-25 17:35:16 525

git 2.9.0 -64位

git 2.9.0 -64位

2016-07-15

Android带有动画效果可弹出并收回的一组按钮菜单

实现起来很简单,看到代码之后我相信你就可以随心所欲地做出带有酷炫的动画效果的按钮菜单了。环境:Android Studio

2015-09-10

Android 流式布局,标签页

Android自定义流式布局实现的标签页

2015-06-08

android 视频转GIF图片

android下视频转gif,界面没有优化,不显示转换过程,用log可以观察显示过程

2015-03-31

李兴华老师ppt&笔记

李兴华老师的PPT和笔记

2014-03-30

空空如也

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

TA关注的人

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