菜鸟的Android
RainMcCom
菜鸟Android程序猿
展开
-
Paint类的其它函数
在之前我们已经接触了Paint类的一些方法,下面是一些之前没有接触过的方法: setStrokeCap(Paint.Cap cap) 设置线冒样式,取值有Cap.ROUND(圆形线冒)、Cap.SQUARE(方形线冒)、Paint.Cap.BUTT(无线冒) 下面是这些方法的简单使用:1.setStrokeCap(Paint.Cap cap)设置线冒样式,取值有Cap.ROUND(圆形线冒)、原创 2017-08-29 05:15:46 · 612 阅读 · 0 评论 -
Android系统服务--LocationManager
getAllProviders:获取所有的定位方式LocationManager lm=(LocationManager)getSystemService(Context.LOCATION_SERVICE); List<String> list=lm.getAllProviders(); //获取所有的定位类型 for(int i=0;i<list.size();i原创 2016-12-26 11:42:31 · 469 阅读 · 0 评论 -
Android判断网络连接
1.判断当前手机是否已经联网 (1) 添加权限 (2)具体实现public boolean isNetworkConnected(Context context) { //API21前后判断的方法有点区别 ConnectivityManager cn=(ConnectivityManager) context.getSystemService(Cont原创 2016-12-19 09:15:34 · 597 阅读 · 0 评论 -
了解Activity和Fragment的生命周期
1.在MainActivity的布局文件中,使用FrameLayout。<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"原创 2016-12-14 15:59:59 · 282 阅读 · 0 评论 -
Android Design Support Library的初步使用
使用之前,首先需要导入依赖compile 'com.android.support:design:23.+'1.使用FloatingActionButton (1)在布局文件中<android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="原创 2016-10-11 16:20:51 · 263 阅读 · 0 评论 -
Android使用ItemTouchHelper实现RecyclerView的item拖动位置交换
1.导入依赖 compile 'com.android.support:recyclerview-v7:23.+'2.适配器import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View原创 2016-10-11 15:31:21 · 3701 阅读 · 5 评论 -
1.4线程中断的控制
如果线程实现了复杂的算法并且分布在几个方法中,或者线程里面有递归调用的方法,就得使用Java提供的InterruptedException异常来控制线程的中断。当检查到线程中断的时候,抛出InterruptedException异常,然后在run方法中捕获并处理这个异常。1.编写一个实现Runnable接口的FileSearch类,该类用于查找某个文件夹里是否含有某个文件。public class原创 2016-09-21 09:36:42 · 296 阅读 · 0 评论 -
带动画的从上往下显示的PopupWindow
自定义PopupWindow的布局文件 dialog_layout.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout_root" android:lay原创 2016-08-30 14:29:07 · 5629 阅读 · 0 评论 -
ListView自定义布局以及相关操作
1.实现自定义布局的ListView(1) 继承BaseAdapter,重写适配器类public class ListViewAdapter extends BaseAdapter{ private List<Note> data; private LayoutInflater layoutInflater; private Context context; publ原创 2016-08-30 15:50:59 · 500 阅读 · 0 评论 -
菜鸟的ViewPager使用
1.将ViewPager和Fragment绑定使用(1) 继承FragmentPagerAdapter,重写ViewPager的适配器import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdap原创 2016-08-30 21:36:43 · 386 阅读 · 0 评论 -
ViewFlipper的简单使用
1.使用ViewFlipper制作轮播图 (1)布局文件 activity_main.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.原创 2016-09-01 16:14:15 · 372 阅读 · 0 评论 -
Android中实现固定时间自动跳转的几种方式
1.Thread+HandlerHandler handler = new Handler(new Callback() { @Override public boolean handleMessage(Message msg) { switch (msg.what) { case 1: Intent inte翻译 2016-09-02 14:21:08 · 900 阅读 · 0 评论 -
Android使用TelephonyManager
通过TelephonyManager,我们可以访问手机通讯的相关信息 (1) 首先需要加上权限 (2) 获取常用的信息tvResult=(TextView)findViewById(R.id.tvResult); TelephonyManager tm=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);原创 2016-12-20 20:28:55 · 468 阅读 · 0 评论 -
Canvas----绘制常用的基本图形
1.绘制圆形 public void drawCircle(float cx, float cy, float radius, Paint paint)参数分别为:圆心x坐标、圆心y坐标、半径、绘制的画笔。public void initPaint() { mPaint=new Paint(); mPaint.setColor(Color.RED);原创 2017-08-21 19:45:32 · 928 阅读 · 0 评论 -
Canvas---Canvas变换与操作
平移Canvas类提供了一个translate()方法就是用来平移画布,以左上角为原点,向右为x轴正方向,向下为y轴正方向。将画布沿着x轴和y轴的正方向都移动200像素之后,在画布上绘制一个图形:canvas.translate(200,200); RectF rectF=new RectF(0,0,400,200); canvas.drawRect(rectF,pa原创 2017-08-24 23:28:41 · 411 阅读 · 0 评论 -
菜鸟初体验之----DataBinding
构建环境1.首先,确保能使用Data Binding,需要下载最新的 Support repository。否则可能报错2.在模块的build.gradle文件中添加dataBinding配置android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { application原创 2017-09-25 22:06:26 · 653 阅读 · 0 评论 -
事件分发机制---ViewGroup
@Override public boolean dispatchTouchEvent(MotionEvent ev) { if (mInputEventConsistencyVerifier != null) { mInputEventConsistencyVerifier.onTouchEvent(ev, 1); }原创 2017-08-31 11:26:52 · 241 阅读 · 0 评论 -
Android面试题----Broadcast问题
一、Broadcast1.定义 运用了观察者模式思维,是一种广泛运用在应用程序之间的传输信息的机制,发送的广播是一个Intent,这个Intent可以携带我们想要的数据。不同程序之间应用程序之间数据共享。2.广播的使用场景 (1)同一App具有多个进程的不同组件之间的消息通信 (2)不同App的组件之间的通信3.广播种类 (1)NormalBroadcast Context.sendBroa原创 2017-09-08 15:34:24 · 494 阅读 · 0 评论 -
Android面试题----Fragment问题
一、Fragment为什么被称为第五大组件?1.Fragment为什么被称为第五大组件? (1)有自己的生命周期 (2)使用频率高2.Fragment加载到Activity的两种方式? (1)添加Fragment到Activity的布局文件中去。 (2)动态在Activity中添加Fragment。3.FragmentPagerAdapter和FragmentStatePagerAdapt原创 2017-09-08 15:14:53 · 641 阅读 · 0 评论 -
Canvas---drawText()
概述 1.基线基线相当于小学写英语的四格线的第三条线,只要基线的位置确定了,那么绘制的文字的位置就可以确定了。2.canvas.drawText()方法(1)Canvas与基线现在就以最简单的方法为例:public void drawText(String text, float x, float y, Paint paint)传进去的x和y很容易被误解为绘制文字的矩形的左上角,其实y是基线的位原创 2017-08-28 22:07:46 · 1240 阅读 · 1 评论 -
Android面试题----Activity相关问题
一、Activity生命周期1.activity的四种状态(1)Running 当一个活动位于返回栈的栈顶的时候,此时Activity就处于Running状态 (2)Paused 当一个Activity不再处于栈顶却依然可见的时候,这个时候,就进行了Pause状态。因为并不是每个Activity都占满整个屏幕,如果新的Activity是以对话框的形式仅仅占用屏幕的中间位置,那么之前的Acti原创 2017-09-06 13:47:46 · 572 阅读 · 0 评论 -
Android Studio中使用Lambda表达式
1.首先确保使用的JDK为1.8 2.将 sourceCompatibility和 targetCompatibility手动修改成1.8 3.在build.gradle处添加在dependencies根下添加classpath ‘me.tatarka:gradle-retrolambda:3.2.0’ 4.在app下的build.gradle中添加apply plugin: ‘me.tat原创 2017-09-05 16:49:14 · 314 阅读 · 0 评论 -
Canvas---区域(Range)
构造Region构造Region有4个构造函数 public Region() //创建一个空的区域 public Region(Region region) //拷贝一个region的范围 public Region(Rect r) //创建一个矩形的区域 public Region(int left, int top, int right, int bottom) //创建原创 2017-08-23 17:08:22 · 967 阅读 · 0 评论 -
paint的色彩矩阵以及滤镜效果
色彩矩阵对于色彩的存储,Bitmap类采用了一个32位的数值来存储。红、绿、蓝、透明各占8位,每一个色彩分量的取值范围为0-255,。透明度为0表示完全透明,为255表示完全可见。1.色彩信息的矩阵表示: 四阶表示: 由于一个色彩信息包含R、G、B、Alpha信息,所以,我们必然要使用一个4阶色彩变换矩阵来修改色彩的每一个分量值:注意:对于色彩变换矩阵,这里的色彩顺序是R、G、B、A而不是A、R原创 2017-09-04 15:37:18 · 902 阅读 · 0 评论 -
Canvas---文字的绘制
文字1.与Paint相关的设置//普通设置 paint.setStrokeWidth (5);//设置画笔宽度 paint.setAntiAlias(true); //指定是否使用抗锯齿功能,如果使用,会使绘图速度变慢 paint.setStyle(Paint.Style.FILL);//绘图样式,对于设文字和几何图形都有效 paint.setTextAlign(Align.CENT原创 2017-08-22 19:33:04 · 2475 阅读 · 0 评论 -
Canvas---路径的绘制
绘制路径绘制路径的方法为:void drawPath(Path path,Paint paint);1.直线路径Path类有个close方法,当绘制的直线没有闭合的时候,调用close方法会将收尾连接起来。moveTo方法表示该条直线的起点,lineTo表示该条直线的终点。下面看一下自行闭合路径和没有闭合路径而调用close方法的情形。Path path=new Path(); pa原创 2017-08-22 10:53:36 · 937 阅读 · 0 评论 -
Android存储
1.内部存储(1)往手机内存中存储private void writeToFile(){ try{ OutputStream os=openFileOutput("test.txt",Context.MODE_PRIVATE); //这里是将EditText中的数据写进内存 os.write(editText.getText().toString().ge原创 2016-09-02 14:42:32 · 312 阅读 · 0 评论 -
Broadcast的简单使用
1.时时监测手机的电量、电压、电池温度private int BatteryN; //目前电量private int BatteryV; //电池电压private double BatteryT; //电池温度private String BatteryStatus; //电池状态private String BatteryTemp; //原创 2016-09-02 14:51:46 · 376 阅读 · 0 评论 -
Android中使用ClipDrawable实现缓缓打开一张图片的效果
1.clipdrawable.xml<?xml version="1.0" encoding="utf-8"?><clip xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@mipmap/ic_launcher" android:clipOrientation="horizon原创 2016-09-19 10:57:15 · 617 阅读 · 0 评论 -
SQLite数据库的简单使用
1.创建继承SQLiteOpenHelper类的辅助类import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DataBaseHelper extends SQLiteOpen原创 2016-08-30 15:13:28 · 541 阅读 · 1 评论 -
Android SharedPreferences
1.SharedPreferences的使用(1) 使用SharedPreference存储数据public void setSharedPreference() { //获取SharedPreferences类的一个实例 sharedPreferences = getSharedPreferences("itcast", Context.MODE_PRIVATE);原创 2016-09-19 10:34:11 · 275 阅读 · 0 评论 -
Android中Excutor线程池的简单使用
1.newFixedThreadPool的使用 . 创立一个线程池,该线程池中有5个线程 . 将15个RunnableImpl对象放入线程中执行,可以看到这15个RunnableImpl在5个线程中调用private void testExecutors1(){ Executor executor= Executors.newFixedThreadPool(翻译 2016-09-18 15:41:16 · 486 阅读 · 0 评论 -
Android中对ThreadPoolExcutor的简单使用
1.优势: (1)降低资源消耗。通过重复利用已创建的线程降低线程创建、销毁线程造成的消耗。 (2)提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 (3)提高线程的可管理性。线程是稀缺资源,如果入限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配、调优和监控。2.线程池的创建 new ThreadPoolExecutor翻译 2016-09-18 15:13:07 · 827 阅读 · 0 评论 -
Android保存Serializable数据到本地
1.定义一个Student类,实现Serializable接口public class Student implements Serializable { private Integer id; private String name; //注意定义此字段 public static final long serialVersionUID = 9527L; pu翻译 2016-09-18 11:17:54 · 2388 阅读 · 0 评论 -
Android VelocityTracker
VelocityTracker用于监测手指滑动时候的速度。<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" and原创 2016-09-14 14:17:28 · 555 阅读 · 0 评论 -
ListView使用模拟数据进行分批加载测试
1.ListView的尾部文件 footview.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout翻译 2016-09-14 10:55:18 · 435 阅读 · 0 评论 -
Android4.4系统以上实现沉浸式状态栏
1.在页面中判断系统是否是4.4以上的//判断当前SDK版本号,如果是4.4以上,就是支持沉浸式状态栏的 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STAT翻译 2016-09-14 09:49:09 · 646 阅读 · 0 评论 -
Activity切换时的效果
1.淡入淡出的效果(1) 淡入效果 ap2.xml<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <alpha android:duration="500" android:fromAlpha="0.0原创 2016-08-30 23:24:45 · 298 阅读 · 0 评论 -
Android拖拽的简单使用
1.对一个简单的控件能够实现拖拽操作ima = (ImageView)findViewById(R.id.iv_logo); // Sets the tag ima.setTag(IMAGEVIEW_TAG); ima.setOnLongClickListener(new View.OnLongClickListener() { @Override翻译 2016-09-09 10:15:47 · 462 阅读 · 0 评论 -
Android AlarmManager的简单使用
1.定时更换屏幕壁纸(1) 添加可以更换壁纸的权限<uses-permission android:name="android.permission.SET_WALLPAPER" />(2)服务类,用于壁纸的更换public class ChangeService extends Service { //定义定时更新的壁纸资源 int[] wallpapers = new int[]原创 2016-09-19 11:12:58 · 510 阅读 · 0 评论