自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2015-09-24 19:12:45 742

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

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

2015-09-22 15:08:51 913

原创 Android动画Animation/Animator/LayoutTransition

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

2015-09-20 11:04:52 713

原创 自定义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 483

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

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

2015-09-18 19:13:44 664

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

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

2015-09-17 20:58:41 711

原创 自定义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 733

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

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

2015-09-17 19:34:06 2368

原创 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 2197

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

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

2015-09-16 21:37:38 1206

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

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

2015-09-16 20:55:27 563

原创 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 776

原创 多媒体应用之/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 613

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

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

2015-09-14 21:54:30 1498

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

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

2015-09-14 21:25:44 1506

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

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

2015-09-14 18:55:30 865

原创 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 524

原创 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 444

原创 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 569

原创 25/9/8/SQLite/ContentProvider

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

2015-09-08 18:35:58 405

转载 Android全部权限

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

2015-09-07 19:32:13 418

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

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

2015-09-07 19:25:34 630

原创 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 399

原创 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 478

原创 15/9/6/ViewPager

View滑动时的下面图片圆点的改变1.View滑动时下面圆点改变的方法步骤是: (1)首先在布局中添加一个LinearLayout,用于存放代表标志的图片<LinearLayout android:id="@+id/linear_point" android:layout_width="match_parent" android:layout_hei

2015-09-06 20:38:58 418

Android ViewPager实现画廊效果

利用ViewPager实现画廊效果

2016-08-04

空空如也

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

TA关注的人

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