自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 资源 (1)
  • 收藏
  • 关注

原创 重复引用jar包问题和降低编译版本问题总结

降低版本本地一般建工程的时候,Android Studio一般选用的是本地的最高版本。这样就导致新建的工程都是compileSdkVersion为25,工程的依赖如图: 要是直接更改compileSdkVersion 为21的话就会报valudes-v23.xml not found的问题了,为了解决这个问题需要改动三个地方1.theme 需要改成不是Theme.AppComp

2017-11-27 20:06:24 1780

原创 设置maxLines=2,ellipseSize=end,判断文本内容是否超出,显示省略号

TextView的两个属性1、maxLines : 能显示的最大的行数,如设置maxLines=”2”则最大显示的行数为2,如果文本内容不够两行,就会将内容显示全 2、ellipseSize : 文本缩略显示位置控制,有三个值:start,middle end 分别表示当文本内容显示不下时,在文本的开始,中间,和结束显示’…’ 通常maxLines和ellipseSize是结合使用的需求让一段不

2017-04-01 17:08:08 2366 1

原创 AndroidStudio报错AAPT: libpng error: Not a PNG file

AndroidStudio在Clean时报的错误信息(在Gradle Console里):AAPT: libpng error: Not a PNG fileAAPT: libpng error: Not a PNG fileError: java.lang.RuntimeException: Some file crunching failed, see logs for details:a

2016-10-19 19:00:28 2078

转载 Android Studio多渠道打包和代码混淆教程

原文地址 : http://blog.csdn.net/leeo1010/article/details/49903759

2016-09-13 10:40:43 642

转载 15 个 Android 通用流行框架大全(2016)

1. 缓存 Java实现基于LRU的磁盘缓存 2.图片加载Android Universal Image Loader 一个强大的加载,缓存,展示图片的库 Picasso 一个强大的图片下载与缓存的库 Fresco 一个用于管理图像和他们使用的内存的库 Glide 一个图片加载和缓存的库 3. 图片处理Picasso-transformations 一个为Picasso提供多种图片

2016-09-09 16:58:38 1278

原创 内存泄漏检测工具和Handler引起的内存泄漏问题

内存泄漏定义内存泄漏也称作“存储泄漏”,用动态存储分配函数动态开辟的空间,在使用完毕之后未释放,结果导致一直占据内存单元,直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓的内存泄漏。 Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收。也就是说,一个对象不被任何引用所指向,则该对象会在

2016-09-09 16:36:56 721

原创 Android实现圆弧形渐变色进度条

效果图:我写的这篇博客个人感觉非常的不详细,这也是根据UI设计的,不过大家掌握下文所点出来的重点方法也可以将其绘制出来,这里就不详细介绍绘制流程了 UI分析:这个UI细分为表盘刻度、进度条底色、进度条渐变色、最外层那个实心圆球和文字描述。接下来就逐个实现一、绘制表盘刻度1、绘制表盘的刻度主要是用了画布的旋转来进行绘制 利用canvas.rotate()方法来旋转画布。利用canva.drawTe

2016-08-23 10:09:32 13391 7

原创 统计代码行数

1、进入需要统计的文件夹目录下 2、输入统计命令 知道指定后缀名的文件总个数命令:(得到的是html文件的数目)  find . -name “*.html” | wc -l 如果不行可以试试去掉双引号例如: find . -name *.java | wc -l (得到java文件的数目)知道一个目录下代码总行数以及单个文件行数:(得到的是每个及所有html文件中内容的行数)  find

2016-08-04 17:52:29 605

原创 ViewPager实现画廊效果

1.先看一下效果2.技术要点:1、setClipChildren(boolean clipChildren)方法: clipChild用来定义他的子控件是否要在他应有的边界内进行绘制。 默认情况下,clipChild被设置为true。 也就是不允许进行扩展绘制。而在这个Demo中承载ViewPager的父容器必须要将其设置为false才可以绘制旁边的两页 2、setPageTr...

2016-08-04 10:44:15 13640 1

转载 Http学习

http协议学习系列 1. 基础概念篇 1.1 介绍HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1

2016-03-09 17:44:28 1555

原创 Android利用ant将多个jar包合并成一个jar包

做项目的时候(Eclipse),看到自己的libs文件夹下的jar包越来越多(引入第三方的库),同时也就出现了65536的问题,看了这一篇博客http://my.oschina.net/u/992018/blog/354513说是要将jar包利用ant转化成1个jar包,但是这篇博客的没有1、AntApache Ant是一个基于Java的生成工具。据最初的创始人James Duncan Davids

2016-02-17 18:08:26 4810 4

转载 Android自定义通知栏/状态栏颜色

原文地址:http://blog.csdn.net/baiyuliang2013/article/details/46674735适用版本谷歌是在4.4版本以后允许开发者自定义通知栏/状态栏背景颜色,4.4以前是不支持这个功能方法1设置主题 不过由于市场上的SDK版本很多所有不建议用这种方法Theme.Holo.Light.NoActionBar.TranslucentDecor Theme.H

2016-01-14 17:50:37 1513

原创 ListView的item中内部点击事件的传递

在一般的情况下ListView的点击事件只需要的在Activity中设置一个onItemClickListener()方法。但是遇到item里面的按钮、图片、文字、需要点击的时候,就需要把点击事件从Adapter中传到Activity中 首先创建一个接口public interface Callback { public void click(View view);}在Adapter

2015-11-18 17:27:02 4255

转载 Android OnLowMemory和OnTrimMemory

OnLowMemory OnLowMemory是Android提供的API,在系统内存不足,所有后台程序(优先级为background的进程,不是指后台运行的进程)都被杀死时,系统会调用OnLowMemory。系统提供的回调有:Application/Activity/Fragementice/Service/ContentProvider 除了上述系统提供的API,还可以自己实现Compo

2015-11-16 09:21:24 833

原创 Android中百度导航引擎初始化失败问题

1.我使用的是AndroidStudio1.3版本(1.4出来了懒得更新)我遇到问题按照以下顺序进行解决2.首先检查assets里面的东西放入到工程里面了没有3.检查jar包是否导入4.检查权限然而,所有都检查过后并且确认无误以后依然出现了“百度引擎初始化失败的问题”,然后看出现报错的log,11-12 13:00:54.163 16195-16195/com.text.my.map E/link

2015-11-12 13:06:15 6625 2

转载 下拉刷新

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9255575最近项目中需要用到ListView下拉刷新的功能,一开始想图省事,在网上直接找一个现成的,可是尝试了网上多个版本的下拉刷新之后发现效果都不怎么理想。有些是因为功能不完整或有Bug,有些是因为使用起来太复杂,十全十美的还真没找到。因此我也是放弃了在网上找现成代码的想法,自己花

2015-10-13 20:55:29 572

原创 点击事件的传递/实现下拉刷新/手势检测

点击事件的传递1.DispatchTouchEvent()返回True代表可以分发事件,2.onInterceptTouchEvent()返回False表示不拦截事件,3.onTouchEvent()返回True代表执行点击事件,在执行完以后必须返回True,否则不会处理Touch事件 通过点击事件来实现下拉刷新的操作实现下拉刷新的原理其实就是在FramLayout布局中添加两个View,写有下拉

2015-09-24 19:12:45 777

原创 传感器的应用/SurfaceView/制作简单的指南针

传感器的简单应用之光照传感器1.手机上传感器的使用首先需要得到系统服务private SensorManager mSensorManager;mSensorManager= (SensorManager) getSystemService(Context.SENSOR_SERVICE);2.然后得到在得到服务的类型,即选用哪种传感器 Sensor sensor=mSensorManager.ge

2015-09-22 15:08:51 930

原创 Android动画Animation/Animator/LayoutTransition

动画Animation1.Animation有5个子类: AlphaAnimation, AnimationSet, RotateAnimation, ScaleAnimation, TranslateAnimation 分别代表透明度动画,动画集合,旋转动画,缩放动画,平移动画2.透明度动画AlphaAnimation://透明度显示,第一个参数是开始时的透明度,第二个参数是结束时的透明度,0代表

2015-09-20 11:04:52 731

原创 自定义ViewGroup

自定义Viewgroup1.创建一个JAVA类继承于viewGroup2.重写构造器3.复写onLayout方法4.在onMeasure方法下让子View测量自己measureChildren(width,height);//让在这个View下的子View自己测量自己(第一个参数是这个View的所要求的宽,第二个参数是这个View所要求的长度)5.最后得到子View,然后对其布局进行处理 @Ove

2015-09-19 16:04:45 501

原创 自定义View实现擦除蒙版显示图片功能/自定义View的存储/自定义View的属性

自定义View实现擦除蒙版显示图片功能1.首先找到一张图片,利用BitmapFactory.decodeResource()方法得到它,作为画布的最底层将其绘制到画布的最底层canvas.drawBitmap(mBitmapBackground,new Rect(0,0,mBitmapBackground.getWidth(),mBitmapBackground.getHeight()),

2015-09-18 19:13:44 682

原创 自定义View画出手机通讯录中右边字母,并设置TouchEvent/观察者模式

首先画出26 个字母1.画出26个字母首先需要一个字符数组,里面的包含了26个英文字母2.设置字母的高度为当前View的总高度除以float类型的26,设置字母显示位置,横坐标是当前View 的宽度减去一个字母的宽度,这样可以让字母显示到View 的右边缘上,纵坐标是根据字母的高度,往下累加(见代码)3.利用for循环绘制出26个字母点击字母时确定点击的是哪个字母,点击是更换颜色1.复写onTouc

2015-09-17 20:58:41 741

原创 自定义View之Bitmap/在Bitmap上绘制新的图形/Xfermode属性

绘制Bitmap利用Matrix可以将Bitmap拉伸、平移、翻转、对称操作1.首先是拉伸:需要调用Matrix.postScale()方法,第一个参数是沿x轴拉伸的倍数,第二个参数是沿y轴拉伸的倍数2.平移:Matrix.postTranslate(),一个参数是沿x轴平移距离,第二个参数是沿y轴平移距离3.旋转:Matrix.postRotate(),里面传入旋转角度4.沿x轴对称,倒影效果:

2015-09-17 20:07:43 753

原创 android自定义View创建一个Path绘制多边形,贝塞尔曲线,

自定义View绘制多变形1.在绘制多变形中Path非常重要,它可以连接指定点,从而实现绘制多变形的目的。也可以添加圆形路径和弧度路径以及矩形路径,最后调用canvas.drawPath将路径画出来就可以了2.在路径上添加文本需要调用 canvas.drawTextOnPath()方法,第一个参数是文本内容,第二个参数是路径,第三个表示添加文本的起始位置距路径的距离,第四个参数表示的是在路径的上方还是

2015-09-17 19:34:06 2396

原创 Android自定义View绘制圆形、方形、弧形、球形四种形态的模仿下载进度条

绘制步骤1.首先创建以JAVA类继承与View,然后调用前两个构造器2.然后设置画布的宽度和高度3.绘制图形(见代码)4.在XML文件布局中添加该View并附上id5.为了模仿下载进度条,需要在Activity中找到该View,利用Handler提交数据即提交下载完成度,并不断更新View(可以设置延迟来模仿)6.代码实现弧形进度条自定义Viewpublic class ProgressArcVie

2015-09-16 21:48:55 2227

原创 Android自定义控件——自定义View绘制钟表

自定义View,绘制一个钟表1.首先创建一个JAVA类继承于View,里面有四个构造器,一般情况下调用前2个构造器,2.进行绘制图形操作(详细见代码部分)3.绘制完成后为了实现秒针、分针和时针的走动,需要不断的向UI线程发送消息从而进行重新绘制,这就需要用到Handler向UI线程不断发送消息,同时不断得到当前系统时间刷新绘图的位置。必须要调用invalidate();方法提醒UI线程进行重新绘制4

2015-09-16 21:37:38 1234

原创 调用系统的Camera和相册/压缩照片

调用系统的Camera1.这只是简单的调用一下摄像头,然后拍一张照片。这个命令是基于Intent的,需要在setAction中添加调用摄像头的语句,然后利用Intent.putExtra将得到的照片存放到file里 最后复写onActivityResult,将拍下来的照片显示到ImageView上2.需要权限<uses-permission android:name="android.permis

2015-09-16 20:55:27 580

原创 Volley和xUtils

Volley1.Volley是对HTTP通信的再简化操作2.Volley适合通信量不大但是特别频繁的场景3.在android studio中要导入volley的jar包,导入方法是: Project Structure→Dependencies→+→选择第一个→在搜索框中输入volley→选择第一个点击OK就可以了4.Volley的逻辑图是 5.实现Volley的代码如下,并且顺带把ImageL

2015-09-16 20:31:57 793

原创 多媒体应用之/SoundPool/MediaRecorder/MediaPlayerVideo/SurfaceView

SoundPool1.SoundPool是用于播放提示音的适合短促且对反应速度比较高的情况,要求他占用的内存小(一般在20k左右就很大了)2.代码实现public class MainActivity extends AppCompatActivity { private Button mBtnSound; private SoundPool pool; private in

2015-09-15 19:32:32 631

原创 单线程下载和多线程下载

单线程下载1.单线程下载比较简单,就是开启一个线程,然后打开URL连接按照字节的方式读取流,写入文件就可了 2.用AsyncTask实现单线程下载class DownLoadSingle extends AsyncTask<String,Integer,String>{ @Override protected void onProgressUpdate(Intege

2015-09-14 21:54:30 1555

原创 URLConnection/Android Stutio中HttpClient的添加jar包方法和DoGet、DoPost的用法

网络连接操作是一种耗时操作,因此不能再UI主线程中进行网络连接操作,需要另外开启一个线程来进行网络连接操作,开启线程的方法一种的直接开启一个新的线程即 newThread(new Runable{…})另一种是使用AsyncTask方法,在该方法中的DoInBackground()方法中进行连接网络的操作,因为AsyncTask会自动开启一个线程,所以就不用重新建立一个线程,只需要创建该AsyncT

2015-09-14 21:25:44 1537

原创 NetWork获取连接状态/WebView的简单用法/当按返回键时返回堆栈内容

NetWork获取连接状态1.首先通过连接管理器获取系统的连接服务2.然后获取当前活动的网络连接信息3.判断网络连接是否为空以及得到网络连接的类型 private ConnectivityManager mConnectivityManager; mConnectivityManager= (ConnectivityManager) getSystemService(Context.CONNEC

2015-09-14 18:55:30 898

原创 15/9/9/Handler主线程和子线程之间的通讯/AsyncTask

Handler子线程向主线程发送消息1.由于在UI活动中不能进行耗时操作,因此不能再UIActivity中创建线程要不然会报错 2.Handler就是在Thread和UI主线程之间进行通讯的桥梁,线程的信息必须通过Handler来传递到UI主线程上(在代码中被注释的部分) 3.也可以直接用Handler来直接对UI主线程进行操作 4.操作的具体方法是 handler.sendEmptyMess

2015-09-09 19:14:25 553

原创 15/9/9/Service发送倒计时广播Receiver显示

Service内的写法1.首先创建一个线程,在线程里进行延时操作,然后将延时的数据封装到一个Intent中,然后将这个广播发出去 2.在MainActivity中创建一个类继承与Receiver类通过Intent接收传过来的信息,然后将传过来的信息显示在button上public class MyService extends Service { private int count=0;

2015-09-09 18:48:14 466

原创 15/9/8/BroadcastReceiver实现定时功能/Service

BroadcastReceiverServiceBroadcastReceiver1.创建一个Java类继承与BroadcastReceiver,重写里面的方法,什么都不用做,添加一句Toast就可以 Toast.makeText(context, "接收到了广播", Toast.LENGTH_SHORT).show();2.在Manifest中声明这个receiver,可以在这里面注册也可以在代码

2015-09-08 18:59:10 588

原创 25/9/8/SQLite/ContentProvider

SQLiteContentProviderAndroid是对SQLite3进行操作的,其操作步骤一般是:1.首先建立一个Java类继承于SQLiteOpenHelper重写里面的方法 2.在onCreate方法中用sql语句创建一个表 3.在MainActivity中声明这个类,然后调用getWritableDatabase()方法生成一个SQLiteDatabase对象,然后利用这个对象对创建

2015-09-08 18:35:58 421

转载 Android全部权限

访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米 获取精确位置 android.permissio

2015-09-07 19:32:13 451

原创 15/9/7/SharePreference/内部存储/外部存储

SharePreference内部存储外部存储SharePreference通过键值对的形式保存简单、私有的数据 /*** * 内部存储 * 该方法会在手机的私有内存中创建一个文件夹,名称为shared_prefs,里面会生成xml文件自动生成键值对 * getSharedPreferences方法可以生成指定的xml文件命名 * getPreferences

2015-09-07 19:25:34 654

原创 15/9/7/Fragment与ViewPager结合

Fragment与ViewPager结合1.首先在布局中添加一个ViewPager,然后在MainActivity通过FindViewById找到它 2.创建一个Adapter继承于FragmentPagerAdapter,在里面创建一个Fragment的List,在构造器里添加这个list 3.在MainActivity中同样声明一个Fragment的list将创建的几个Fragment类创建

2015-09-07 18:35:34 417

原创 15/9/6/Fragment

Fragment的创建方法步骤(简单的Fragment)Fragment的方法解读 1.在MainActivity中继承FragmentActivity2.创建一个java类继承Fragment重写里面的方法onCreatView(),通过inflate的inflate方法找到创建的布局3.在开始的布局中添加一个FramLayout和一个RadioGroup放到布局中的最下面,就先qq上的布局一样

2015-09-06 20:51:06 488

Android ViewPager实现画廊效果

利用ViewPager实现画廊效果

2016-08-04

空空如也

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

TA关注的人

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