自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (3)
  • 问答 (2)
  • 收藏
  • 关注

原创 View的测量

MeasureSpec 测量view的类View的测量是在 onMeasure()方法中进行的,android 通过MeasureSpec来帮助我们测量。MeasureSpec是32位的int 值,其中高两位是 测量的模式,低 30位是测量的大小。测量的模式有以下几种。EXACTLY 我们将控件的值设置为指定大小的时候,系统使用的是这个模式 如 layout_wrap = “20dp”AT_

2016-04-22 12:20:46 354

原创 Android控件构架

android中每个控件都会在界面中占得一块矩形的区域。控件被分为两类: ViewGroup与 View控件。ViewGroup控件中可以作为父控件包含多个控件,并管理其中的子View控件,通过ViewGroup,整个控件结构就成了一个树形结构 。如图 通常情况下,我们使用setContentView(R.layout.xxx);方法来设置一个布局,在调用该方法后,布局内容才真正的显示出

2016-04-22 11:37:51 262

原创 自定义控件 创建复合控件

创建复合控件可以很好的创建具有重用功能的控件集合,这种方式通常需要继承一个合适的ViewGroup。在给它添加指定功能的控件,从而组合成一个新的复合控件。通过这种方式创建的控件,我们一般会给它指定一些可配置的属性。1、 如何创建自定义属性在Android中要增加自定义属性,需要依靠attrs.xml文件。(建立在res资源文件下的values目录下),并通过该文件定义相应的属性即可。以一个

2016-04-21 21:38:22 272

原创 Intent传递对象

Intent用途可以借助Intent来启动活动,发送广播,启动服务等。还可以传递一些基本类型。但是有时候我们需要传递自定义的对象。传递自定义对象的方式列表内容Intent可以传递基本类型,有时候我们需要让它传递自定义的对象,这时候就需要是要传递的对象序列化,方式有两种。方式一: 该类实现了Serializable,可序列化的意思,表示讲一个对象转换成可存储或可传输的状态。序列化对的对象

2016-04-21 10:27:56 272

原创 Http GET 接口回调

## 发送http请求,对返回的数据处理 ##package com.xiaoxu.administrator.myserviceapp.service;/** * Created by Administrator on 2016/4/20. */import java.io.BufferedReader;import java.io.InputStreamReader;import jav

2016-04-20 22:09:24 3006

原创 定时任务

两种实现方式一种是Java API中的Timer类另一种是Alarm机制两者大多数情况下都有类似的效果,手机在不运行时,会进入睡眠状态,这样可能导致Timer的定时任务无法正常运行。Alarm机制则不存在这种情况,它具有唤醒CUP的功能。即可以保证每次需要执行定时任务的时候,CPU都能正常的工作。Alarm机制的用法借助AlarmManager类来实现,通过调用Contenxt的getS

2016-04-20 14:53:30 262

原创 IntentService

IntentService是Service的子类,它增加了额外的功能。-Service 本身存在的问题,它自身不能开启线程,Service所有应用都运行在主线程。因此不能在service中执行耗时动作,因此,如果要处理耗时任务,则需要开启另外一条线程来处理疑虑:既然服务自身不能开启线程,那么和在其他地方开启线程有什么区别那?原因:因为Activity可能被用户退出,BroadcastRec

2016-04-20 13:59:09 258

原创 Server

异步消息机制Android中是不允许子线程中对UI进行操作的,为此,它提供了一种异步消息处理机制,完美了解决了在子线程中更新UI的问题。`/**主线程更新UI*/ private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.wha

2016-04-19 23:24:00 228

原创 内容提供器Demo

创建自己的内容提供器通过新建一个类继承自ContentProvider的方式来创建一个自己的内容提供器并实现它 6 个抽象方法。onCreate()方法。 初始化内容提供器的时候调用。通常会在这里完成对数据库的创建和升级操作,返回true,表示内容初始化成功,返回false,表示内容初始化失败。只有当存在ContentResolver尝试访问我们程序的时,内容提供器才会被初始化。que

2016-04-19 16:41:28 406

原创 内容提供器

简介内容提供器主要用于在不同的应用程序之间实现数据的共享功能,它提供了一套完整的机制,允许B程序访问A程序,同时还能报这个被访问数据的安全性。目前,使用内容提供器是使用跨程序之间共享数据的标准方式。内容提供器的用法有两种,一种是使用现有的内容提供器来读取和操作相应程序中的数据,另一种是创建自己的内容提供器,给我们程序的数据提供外部访问接口。访问其他程序中的数据4.对于每一个应用程序,如果要访

2016-04-19 12:05:39 1485

原创 升级数据库

列如版本1的时候,需要一个表格 private static final String CREATE_COUNTRY ="create table Country(" +"id integer primary key autoincrement," + "name text," + "language text,"

2016-04-18 18:13:06 231

原创 数据库 查询 事务

数据库的查询SQLitedatabase中提供了query()方法用于对数据进行查询, private void queryData(){ /* 第一个参数表名 * 第二个参数指定 要查询哪些列,如果要在cursor里获取没有指定的列,将会报错。(null时表示查询所有列) * 第三四个参数用于约束查寻满足该条件的行(一行或多行)

2016-04-18 17:09:28 601

原创 数据库 CURD

添加数据 C U R D 增 更 查 (retrieve)、删SQLiteOpenHelper 的getReadableDatabase 、getWritableDatabase 可以创建和升级数据库,不仅如此,这两个方法还会返回一个SQLitedatabase对象,借助这个对象就可以对数据进行CURD增加数据 insert() SQLiteDatabase database = data

2016-04-18 12:55:13 1804

原创 SQlite数据库

当需要存储大量复杂的关系类型数据的时候,文件存储,和sharedPreference就显得抠脚了。解决办法:数据库,Android内置的轻量型的数据库,SQLite使用方法:创建数据库: 为了方便的管理数据库,android提供了SQLiteOpenHelper帮助类,借助这个类可以非常简单的实现创建和升级。构造方法四个参数:第一个参数是context,第二个参数是数据库名,第三个参数允许我

2016-04-18 11:20:12 329

原创 数据持久化

Android 系统提供了三种方式用于简单的实现数据持久化的功能,文件存储、 SharedPreference 、数据库文件存储,context类提供了openFileOutput()、openFileInput()存储到指定的文件中,这个方法接收两个参数 ,第一个参数是文件名,在文件创建的时候,使用这个名称,注意这个名称不能包含路径,所有的文件都默认存储到/data/data/< packna

2016-04-17 22:59:39 195

原创 强制下线 本地广播

续……………创建广播接收器 2. `package com.xiaoxu.administrator.myapplication3.Broadcast;import android.app.Activity;import android.app.AlertDialog;import android.content.BroadcastReceiver;import android.conte

2016-04-17 21:18:15 318

原创 强制下线 使用本地广播

强制下线功能:实现强制下线的功能思路比较简单,只需要收到异地登陆发出的广播,弹出一个对话 框,让用户无法进行交互,用户必须要点击确定按钮,重新登陆。-在点击按钮的处理逻辑中,销毁掉所有的活动,并重新回到登陆界面。我们这里使用本地广播实现 (因为发现在使用dialog的时候,需要传递一个context类型的参数,而在onReceiver()方法中获取到的并不是activity,程序挂掉)思路:先

2016-04-17 20:59:51 381

原创 发送 广播 (全局、本地)

发送标准广播首先构造出一个Intent对象,并把要发送的广播的值传入,然后调用Context的sendBroadcast()方法将广播发送出去,这样,监听这样action的广播接收器就可以接受到这条广播了 这里的action为 com.xiaoxu.broadcasttest.MY_BROADCASTsendBradBtn.setOnClickListener(new View.OnClick

2016-04-17 14:13:47 578

原创 广播机制 静态注册

动态注册的广播接收器可以自由的控制注册与注销,在灵活方面有很大的优势,但是,它也存在着一个缺点,就是必须要在程序启动后才能够接收到广播,因为注册的逻辑是写在onCreate()里的。那么,有什么方法可以让程序在未启动的情况下就能接收到广播那?这就需要静态注册<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://

2016-04-17 10:12:32 1775

原创 全局大喇叭 广播机制

广播机制简介Android中的广播机制更加灵活,因为它可以对它感兴趣的广播进行注册,这样程序就只会接收它感兴趣的广播了,这些广播可能来源与系统,也可以来源于其它应用程序。发送广播使用Intent,而就收广播使用广播接受器(Broadcast Receiver)。广播的类型:标准广播和有序广播标准广播:是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时间接受到这条广播消息

2016-04-17 08:19:25 367

原创 androidStudio去除标题

去除应用标题栏之前用Eclipse时,发现resquest(Window.NO_TITLE)方法,在AndroidStudio中不好使了。解决办法:我们可以在androidManifest中指定主题的样式来设置标题的类型。这里样式的引用放到res 目录下的style文件中android:theme="@style/AppTheme" 这个是默认的标题类型,我们只需要在这里更改就可以达到我们要的

2016-04-16 22:24:12 883

原创 活动被回收

问题:由于内存不足,出于停止状态的活动被回收,当按下返回键时,被回收掉的活动需要重新加载,重新调用onCreate()方法,这是用户之前的操作存储的数据将被销毁。解决办法:package com.xiaoxu.administrator.smallexample1;import android.os.Bundle;import android.support.v7.app.AppCompatAc

2016-04-16 20:21:40 223

原创 控件属性

TextView singleLine 为true时,表示text只能单行显示 ellipsize = “end” 设置文本超过控件宽度的时候,文本的缩略方式,end表示在尾部进行缩略 paddingLeft 表示文字到控件 左边的距离。以此类推<TextView android:layout_width="wrap_content" android:layo

2016-04-16 20:07:34 273

原创 制作Nine-Path图片

它是一种指定了哪里可以被拉伸,文字内容显示的区域的png类型的图片。达到了拉伸后不会失帧的效果。工具所在:Android SDK 目录下有一个tools文件夹,在这个文件夹下找到draw9patch.bat文件。它就是用来制作Nine-Path的工具。打开后将要处理的图片加载进来。使用方法:我们可以在图片的上下左右的四个边框上绘制一个一个的圆点。上边框和左边框 的区域就是图片要拉伸的区域 右

2016-04-16 19:06:10 885

原创 UI 开发

TableLayout 是使用表格的方式来排列控件的。 既然是表格,就要有行和列,我们尽量会让每一行都有相同的行和列数,有些时候,会事以愿为,当表格的某行一定要有不相等的列数的时候,就需要合并单元格的方式来应对。<TableLayout android:layout_width="match_parent" android:layout_height="matc

2016-04-16 15:25:45 394

原创 UI 开发

FrameLayout 布局中最轻量级的,用到的不多。 该布局没有任何的定位方式,所有的控件都放到布局的左上角。

2016-04-16 15:10:14 270

原创 UI开发

RelativeLayout ## 相对布局它的排列方式比较随意一些,它可以通过定位的方式让控件出现在任何位置。所以它的属性也比较多 见名知意 列如可以通过如下定义,让该控件出现在父控件的左上方 android:layout_alignParentLeft="true" android:layout_alignParentTop="true"`父控件的中间android:layout_ce

2016-04-16 14:57:37 274

原创 UI 布局

LinearLayout*** 线性布局LinearLayout 线性布局这个布局会将它所包含的控件在线性方向上一次排列,默认排列方式是横向可以通过代码来指定排列方式android:orientation=”horizontal” -android:orientation=”vertical” 需要注意的是,如果是横向排列,不能将控件的宽指定为match_parent 这样

2016-04-16 14:30:27 299

原创 SharedPreferences存储

内容简介存储数据 ##SharedPreferences是使用键值对的方式来存储数据的。当我们需要保存一个数据的时候,只需要提供一个对应的键,这样在取出值的时候就可以通过这个键把相应的值取出来,而且SharedPreferences还支持多种不同的数据类型存储,如果存储的类型是整型,那么读出的也是整形。将数据存储到SharedPreferences中 首先要获得SharedPreferences

2016-04-15 23:23:14 378

原创 动态加载布局

效果:通过浮动的方式来展示原图。 步骤:1、动态创建一个ImageView加入到游戏界面中。并将它的Visibility设置为View.GONE 当点击显示按钮时,将原图显示出来。 以一个动画的形式显示出来,或者隐藏。code //添加显示原图的View private void addImageView() { RelativeLayout relativeLayout =

2016-04-10 23:04:02 243

翻译 倒置和

/** * 该数据是否有解 * * @param data 拼图数组数据,打乱后每一张图片的Id * @return 该数据是否有解 */ public static boolean canSolve(List data) { // 获取空格Id int blankId = GameUtil.m

2016-04-09 22:48:36 285

转载 adb不显示连接的设备

如果是以前连接成功过,那么就极有可能是端口冲突的问题。方法:百度google大家多说的是任务管理器 kill掉adb 或者重启adb server,但我任务管理器就没有adb ,猜测是某个程序占用了adb端口。于是按此思路查找。 5037为adb默认端口 查看该端口情况如下: 1、查看adb 的进程端口号是什么,输入命令 adb nodaemon server 显示端口号2、查看端口号对应的进程

2016-04-07 22:51:41 2039

翻译 BitmapFactory

BitmapFactory工厂类:Bitmap bitmap = BitmapFactory.decodeFile(Path);//从文件路径中解压出bitmap ……………………….待续

2016-04-07 22:37:35 185

翻译 Bitmap

位图的常用方法: public static Bitmap createBitmap(Bitmap src) ——以src为原图生成不可变得新图像 public static Bitmap createScaledBitmap(Bitmap src, int dstWidth, int dstHeight, boolean filter)——以src为原图,创建新的图像,指定新图像的高宽以

2016-04-07 22:32:10 212

原创 Activity生命周期

Activity 与Activity调用栈分析 * 内容:Activity生命周期与工作模式 * Activity调用栈管理 * * Activity作为四大组件中出现频率最高的组件,了解Activity,对于开发高质量的应用非常有用。 * 1)起源 * Activity是与用户交互的第一接口,它提供了一个用户

2016-04-04 21:58:10 247

原创 Android布局动画

布局动画定义:作用在ViewGroup上,给ViewGroup增加一view时,添加一个动画效果。最简单的布局是定义在ViewGroup的XML中,使用以下代码来打开布局, android:animateLayoutChanges =”true” 这个效果是Android默认的效果,这种方法无法使用自定义的动画来替换。实现二:通过LayoutAnimationController类来自定义一个V

2016-04-04 21:54:21 323

原创 Android属性动画

简介:属性动画方法的使用

2016-04-04 12:09:25 279

原创 Android动画机制 视图动画

Animation框架定义了透明度、旋转、缩放和位移等这几种常见的动画。 实现原理:每次绘制视图时,View所在的ViewGoup中的drawChild()函数获取该View的Transformation值,然后调用 canvas.concat(transformToApply.getMatrix()),通过矩阵运算完成动画帧,如果动画没有完成,就继续调用invalitate()函数,启动下

2016-04-03 23:08:59 229

原创 SuferfaceView --- View的孪生兄弟

android提供了view进行绘图处理,View可以满足大部分的绘图需求。View通过刷新来重绘视图,android通过VSYNC信号来进行屏幕的重绘,刷新的时间为16ms,如果在16ms内完成了绘图的操作,用户将不会感到卡顿现象,如果执行的逻辑过多,特别是在需要不断的重绘界面时,就会发生阻塞主线程的现象。从而导致卡顿现象,这种情况,我们自定的view的Log中经常会看到如下的警告。 “Skip

2016-04-03 13:11:11 1493

原创 绘图 画笔特效处理2

Shader 又被称为着色器,渲染器,用来描述实现一系列的渐变,渲染效果,android中的Shader包括以下种: BitmapShader —–位图 BitmapShader 产生的是一个图像,有些类似于photoShop的图像填充。它的作用是对画布进行指定位图的填充。LinearGradient—–线性Shader RadialGradient—-光束Shader SweepGradi

2016-04-03 11:24:09 266

二进制查看工具 Binary Viewer 解压使用

Binary Viewer 下载解压使用,无密码

2024-01-17

软件设计师-中级笔记.pdf

软件设计师-中级笔记.pdf 软考笔记

2023-10-09

rocketmq-console

rocketmq 控制台。 java -jar rocketmq-console-ng-1.0.1.jar --rocketmq.config.namesrvAddr=127.0.0.1:9876 启动方式。 http://localhost:8888/

2023-04-21

nacosserver2.0.4.zip

github下载太慢,传一份保留下。

2022-05-23

JavaWeb开发,SSM框架

由于工作需要,javaweb 搭建的ssm框架,及其里面一些工具类。

2018-04-04

pulltozoom.zip

pulltozoom.zip

2016-05-11

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

TA关注的人

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