自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (7)
  • 收藏
  • 关注

原创 Android---自定义ViewGroup

以前我们布局界面都是利用五大布局,但有时,对于一些布局往往需要多层嵌套,这时候往往自定义的ViewGroup能够更容易的来布好局,今天我们来学习一下如何创建自定义的ViewGroup吧^^。ViewGroup的职能为:给childView计算出建议的宽和高和测量模式;决定childView的位置;为什么只是建议的宽和高,而不是直接确定呢,别忘了childView宽和高可以设置为wrap_conte

2015-09-20 21:32:31 506 1

原创 Android在代码中调用XML中设置的自定义View属性

自定义View也可以在XML文件中设置属性 步骤: 1)在values下新建xml文件styleable下,添加属性名称和属性类别,reference代表这个属性值是res下的文件,dimension代表值是dimen,还有color、Intager、eumn、boolean等顾名思义<resources> <declare-styleable name="MyView" >

2015-09-18 22:25:50 2142

原创 Android自定义View---Canvas绘制贝塞尔曲线

用Canvas画贝塞尔曲线,要画贝塞尔曲线首先了解贝塞尔曲线: 由于用计算机画图大部分时间是操作鼠标来掌握线条的路径,与手绘的感觉和效果有很大的差别。即使是一位精明的画师能轻松绘出各种图形,拿到鼠标想随心所欲的画图也不是一件容易的事。这一点是计算机万万不能代替手工的工作,所以到目前为止人们只能颇感无奈。使用贝塞尔工具画图很大程度上弥补了这一缺憾。 贝塞尔曲线是计算机图形图像造型的基本工具,是

2015-09-18 21:53:17 3920

原创 Android自定义View---圆形进度条

原理非常简单,在自定义View的基础上使用Canvas的drawCircle画两个圆,一个圆代表总体,一个圆代表现有进度,在主线程中使用set方法在Handler中传递进度,进度和总体都可以添加set、get方法进行自定义 //主线程代码如下public class MainActivity extends Activity {private Button mBtn_start;private

2015-09-18 21:49:47 549

原创 Android自定义View---模拟球形动态加速球

利用贝塞尔曲线画波浪线封闭黄色矩形,使用PorterDuffXfermode的SRC_ATOP只显示圆和交叠部分,利用Handler发送消息模拟进度形成动态效果。 public class CircleView extends View{private int width;private int height;private Bitmap mBitmap;private Canvas ca

2015-09-18 21:43:00 935

原创 Android自定义View---PorterDuffXfermode两个交叠图形的显示

创建一个Bitmap的canvas,然后用这个canvas对象画两个相互交叠的图形,使用上面图形的画笔调用setXfermode方法添加PorterDuffXfermode对象。 PorterDuffXfermode有如下图16种显示 使用mode.XOR示例/** * Created by Administrator on 2015/9/17. */public class BitM

2015-09-18 21:39:56 994

原创 Android自定义View及canvas(表盘实例)

自定义ViewCanvas用Canvas和自定义View做一个表盘自定义View自定义View就是继承一个View的子孙类或View类,然后重写其中的一些方法来完成界面的美观效果。 Android中,可以用自定义View的技术轻松的创建定制化的控件,创造自定义的空间步骤:最开始要建立一个基于View的子类在界面的XML布局文件中定义属性和参数,也可以在Java代码中调用方法来设置。在界面

2015-09-16 19:56:56 2414

原创 Android多媒体---SoundPool

soundpool适用于播放提示音(短促、密集),短信提示音,电话嘟嘟提示音等 这种提示音如果再用ediaplayer就有些不合适了,Mediaplayer占用资源多,延迟时间长,不支持多个音频一起播放。 soundpool使用音效池,可以开始就加载20多个音效然后在程序中按照音效的ID进行播放。 soundpool有个构造器指定了支持多少个声音、声音的品质等(音效池): SoundPool

2015-09-15 22:55:46 411

原创 Android多媒体---VideoView(播放视频)

这个组件是系统自带的用于播放视频,但只支持3GP和MP4格式,需要内存读权限,一般开发中很少使用(第三方有个android vitamio),但既然系统带有还是要基本会用的。 权限:<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>使用方法: 1)在布局中创建Vid

2015-09-15 21:57:07 541

原创 Android多媒体---SurfaceView(播放视频)+Mediaplayer(音频)

前几天做了一个基于Mediaplayer的音频播放app过程还没整理好就没上传,这两天抽空整理下上传。 这一篇是Mediaplayer和Surfaceview的简单配合使用,Mediaplayer只能播放音频没有提供图像输出界面,需要用到Surfaceview显示Mediaplayer播放的图像输出,这个组件自带一个线程,需要Read权限。<uses-permission android:name

2015-09-15 21:51:49 521

原创 Android多媒体---MediaRecorder

手机都有麦克风,Android系统就可以调用麦克风进行录音了,MediaRecorder这个类可以实现录音功能。 首先需要加权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><!--录音权限--><uses-permission android:name=

2015-09-15 21:45:30 404

原创 Android多媒体---Camera(调用系统Camera,非自定义)

调用系统Camera App实现拍照和摄像功能 不是专门的Camera应用,一般用到Camera的需求就是获取照片或者视 频,比如微博分享、随手记等,对于在Symbian系统上通过简单地调用系统自带的Camera APP来实现该功能是做不到的,但是Android系统强大的组件特性,使得应用开发者只需通过Intent就可以方便的打开系统自带的Camera APP,并通过MediaStroe方便地获取

2015-09-15 21:37:47 357

原创 Android网络连接---xUtils(HttpUtils)

相比于Volley多了好几个框架:DbUtils模块:android中的orm框架,一行代码就可以进行增删改查;支持事务,默认关闭;可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);支持绑定外键,保存实体时外键关联实体自动保存或更新;自动加载外键关联实体,支持延时加载;支持链式表达查询,更直观的查询语义,参考下面的介绍

2015-09-14 21:02:08 663

原创 Android网络连接---Google网络库Volley

Volley作为谷歌推出的一个网络库,用于解决复杂网络环境下网络请求问题,网络连接会新起一个线程,Volley有个缓存机制,得到URL去缓存区查找,如果访问过直接用返回值连接网络,如果没有访问过则进入线程池,线程池的线程有上限,到达上限后就会使用队列机制排队,由于是写好的框架,所以使用起来比URLConnection要简单,需要掌握单例、doGet、doPost方法。Volley的机制官方示意图:

2015-09-14 20:35:26 489

原创 Android网络连接---多线程下载

已经写了一篇单线程下载,现在再使用多线程下载,下载速度比单线程快得多,相当于是一个人干活和多个人一起干一样。怎么实现多线程下载? 首先看一下结构示意图: 从图上就可以看出,多线程是不同的地方开始下载,同时从不同的位置写入本地文件然后拼成完整的文件。 新建一个线程类:public class MultiThread extends Thread {public MultiThread(lo

2015-09-14 20:16:59 316

原创 Amdroid网络连接---URL连接及单线程网络下载

ScrollView只能有一个子控件,子控件可以嵌套其他控件 UI线程中不能使用网路连接,必须新建一个线程创建连接,那么就可以使用Handler和Anynctask,当然作为网络连接肯定是有权限,Webview写了在这不赘述 首先使用用Handler: 在button点击事件中新建一个线程用于连接网络:public void onClick(View v) {switch (v.getId(

2015-09-12 16:16:41 479

原创 Android网络连接---WebView

刚接触网络连接,首先学的就是WebView,不用浏览器连接网络,Webview相当于内嵌了一个浏览器,可以显示网页,网络连接必须有权限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.perm

2015-09-11 21:00:39 514

原创 java中this的使用

学java的时候有点夹生,this不是很理解,今天用到了this就把它记下来,也给诸位看一下。this指的是当前正在访问这段代码的对象,当在内部类中使用this指的就是内部类的对象。为了访问外层类对象,就可以使用外层类名.this来访问,一般也只在这种情况下使用这种形式。这种用法也用于匿名类。有时候,我们会用到一些内部类和匿名类。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时

2015-09-10 18:44:52 426

原创 Android进程线程---Anynctask(本质还是Handler)

上一篇中总结了Handler的使用实例,这一篇写封装好的Handler,异步任务Anynctask,本质上还是把耗时任务放在了子线程中,UI主线程只响应按键、触屏View绘制等任务。子线程不允许直接更新UI组件,就是用了Handler,Anynctask是建议不简化Handler。 Anynctask< Params,Progress,Result>是个抽象类定义了3种泛型:Params:启动任

2015-09-09 22:14:50 732

原创 Android进程线程---Handler(常用)

因为学过Java,所以对线程和进程并不陌生,在Android中线程是一样的写法都是继承Tread或者Runable用start回调run方法,只是用法上有些许区别。 首先是Handler这个类,API中说A Handler allows you to send and process Message and Runnable objects associated with a thread’s M

2015-09-09 21:40:30 348

原创 Android四大组件---Service

服务是Android实现后台运行的解决方案,用于执行那些不需要和用户交互还要求长期运行的任务,服务运行不依赖界面,及时打开了另一个程序,服务依旧在后台运行。服务依赖于创建服务的应用程序进程,进程被杀掉服务就停止。 下图是Service的生命周期: Service的用法: 首先在Manifest里面activity下声明service,但Service是在主线程中,如果执行耗时操作会阻塞主线

2015-09-09 20:59:42 268

原创 Android四大组件---BroadcastReseiver(广播接收器)

基本用法简易闹钟基本用法BroadcastReseiver就是用来接收特定标志的(可以理解为收音机的频率,这里用的“com.android.receiver”)广播 首先在Manifest的activity下静态声明或者做代码中动态注册广播接收器,广播接收器中不允许开启线程,也就是说耗时操作会报错。 Manifest中声明:<receiver android:name=".Reseiver.M

2015-09-08 21:58:18 720

原创 Android五大存储---(四大组件之一)ContentProvider(字段)

作为四大组件之一,本身很复杂,由于用的不是很多,只需要使用简单的查询联系人、调用短信、媒体库等 查询联系人: 相当于是在别人的数据库查找数据,这个数据就是联系人,在别人的数据库查找数据就要遵循别人的要求。 查找联系人需要用到内容控制器提供的外部访问接口。 借助ContentResolver类及其提供的方法,查询用的是query,和数据库中一样都是拼数据库的操作命令query(Uri uri

2015-09-08 20:52:40 315

原创 Android五大存储---SQLite数据库

数据库和java中一样都是增、删、改、查 在布局中写5个button,分别是创建table、增、删、改、查 首先创建一个table,写一个openhelper继承SQLiteOpenHelper, 复写的oncreate方法中创建table,在创建table的点击事件中调用构造器创建table,并得到database public TestSQLopenHelper(Context

2015-09-08 20:36:27 359

原创 Android五大存储---内部存储(缓存)

Context提供了两个方法打开本应用的数据文件夹里的文件I/O流:FileInputStream openFileInput(String name)打开name文件对应输入流FileOutputStream openFileOutput(String name,int mode)打开name对应输出流,mode跟SharedPreferences中的一样两种方式,一种是在file文件中生成

2015-09-07 22:29:51 488

原创 Android五大存储---外部存储(SD卡)

读写SD卡上的文件:调用Evironment的getExternalStorageState()方法判断手机是否有SD卡,并且应用程序有读写SD卡的权限。调用Evironment的getExternalStorageDirectory()获取SD卡目录使用FileOutputStream、FileInputStream、FileReader、FileWrite读写SD卡里的文件对于读写SD卡

2015-09-07 21:34:27 525

原创 Android五大存储---SharedPreferences

SharedPreferences接口,SharedPreferences存储的是简单类型的key—value对,SharedPreferences主要负责读取应用程序的Preferences数据,提供了如下方法来访问SharedPreferences中的键值对:boolean contains(String key):判断SharedPreferences是否包含特定的Key的数据abstrac

2015-09-07 20:37:47 430

原创 Fragment(碎片)基础详解【1】

Fragment必须是依存与Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期。这张图说明了两者生命周期的关系: 先写一个基本应用,活动中3个button对应3个fragment,点击一个出现一个 需要分别写3个fragmeng的java文件和xml布局,布局为了区分写了一个button一个Textview一个edittext

2015-09-06 21:25:19 441

原创 Android回调机制(java)

以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,回调方式其实就是:Class A实现接口CallBack callback——背景1class A中包含一个class B的引用b ——背景2cla

2015-09-05 22:18:42 388

原创 Android adb常见问题

在Android开发中相信很多人都遇到过adb问题,有时候一打开就挂掉,整理下有关adb的问题,与君共勉。问题1[java] view plaincopyprint?The connection to adb is down, and a severe error has occured.You must restart adb and Eclipse.Please ens

2015-09-02 17:16:39 694

原创 Android ViewPager(多页面左右滑动,可做app使用导航)

很多app中都有这个应用,我们来看几张图片这种导航我们都不陌生,如何做到就需要使用ViewPagerViewPager的基本使用很简单,首先需要引入V4包, ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view,GooGLE API中这样描述:Layout manager that allows the user to flip le

2015-09-01 20:27:53 816

原创 android studio对从其他地方拷的代码报非法字符

今天遇到一个问题,从一个项目中把一些类拷贝到Android studio 里面,运行的时候,报非法字符。             Eclipse可以把UTF-8+BOM文件转为普通的UTF-8文件,Android Studio还没有这个功能,        所以使用Android Studio编译UTF-8+BOM编码的文件时会出现” 非法字符:

2015-08-31 22:24:35 408

转载 模仿手机qq的消息控制,Dialog实现

模仿手机qq,历史聊天记录长按会弹出待定和删除按钮的效果。qq效果图  代码实现的效果图 首先,看到这个效果,想一下实现的思路:弹出的待办和删除按钮,是通过dialog实现的。那么这个dialog就要能完成几个效果,第一:自定义界面,第二:控制dialog的显示位置,第三:点击dialog区域之外的地方,dialog要消失,第四:dialog显示的时候,activity不要

2015-08-31 09:00:08 659

转载 Android错误及解决方法锦集

1.找不到sdk:错误界面: 解决: 打开eclipse:window–Preference–android–SDK location 选择你安装的SDK2.找不到模拟器:法1:DDMS打开后,reset abd(adb是调试桥,进行重启) 图解: 3.端口被占用:提示端口被占用,abd调试桥无法使用: 解决方法:打开cmd命令窗口——

2015-08-30 17:42:01 405

原创 android中的Notification(通知)

本篇介绍Notification的用法,它是一个通知栏(类似手机下拉界面的推送)NotificationManager引用(OnCreate)mNatifycatinManager= (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);点击一个button添加通知,点击

2015-08-30 17:34:06 439

原创 弹窗popupwindow

popupwindow是一个弹窗,也是先写一个界面,当点击button时弹出窗口(类似QQ添加表情),只是宽和高在代码中规定(不是xml布局),效果如图···onclik···(button点击事件)case R.id.button_dialog:popupWindow=new PopupWindow(HellowordActivity.this); LayoutInflater in

2015-08-30 17:23:39 359

原创 Dialog(对话框)

本篇介绍Dialog,从基础的AlertDialog到Time(Date)PickerDialog以及自定义AlertDialog是最基本的Dialog,创建一个Builder,初始化3个button然后create就行了,监听事件跟View的不一样是DialogInterface.Oncliklistener(View.Oncliklistener),dialog依赖的是activi

2015-08-30 17:16:42 608

原创 ExpandableListView(listView嵌套)

可以做出一个类似QQ分组的界面(点开分组,里面有人)在mainactivity中连接到界面,findById找到ExpandableListView,初始化数据,这个初始化是两个List的嵌套,把Student数据放到List students中,把Clazz数据放在List mClazz中,然后把students套进mClazz中(每个班级都有好多学生,每个mClazz中都有一个studen

2015-08-30 17:13:28 803

原创 SimpleAdapter适配的ListView(不常用)

protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.simple_adpter);mListView= (ListView) findViewById(R.id.list_itemmm);// Arr

2015-08-30 17:07:31 340

原创 自定义Adapter的listview(很重要)

首先介绍下MVC:M就是modle,V是view,C是control把数据通过适配器适配一定格式后,给listview输出listview相当于一个空的架子,把格式化的数据放出来LayoutInflater跟findById很像,只是findById是找的控件,LayoutInflater找的是xml文件自定义流程:1) mainactivity运行本身的布局文件和listvi

2015-08-30 17:05:37 862

雷达进度条

特殊进度条:雷达、流动、波浪等等,提供源码参考

2015-09-07

仿UC手机客户端

高仿UC手机客户端,布局清晰,适合作为Android进阶

2015-09-07

仿饿了么客户端

高仿饿了么手机客户端,布局清晰,代码齐全

2015-09-07

json.jar扩展包

这是java中json的jar包,解压后倒入即可使用

2015-09-03

仿QQ聊天窗

这是仿QQ聊天窗,里面有表情添加按钮,仅供学习使用

2015-09-02

tomcat(java服务器)

学习使用的tomcat,连接mysql,学数据库连接的可以下载

2015-09-02

空空如也

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

TA关注的人

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