Android
BeautifulSoup2019
万事起于忽微,量变引起质变
展开
-
浅谈Kotlin(一)
Kotlin是一门可以运行在Android、Java虚拟机、浏览器上的静态语言,他与Java100%兼容。2017年5月18日,Google官方已经将Kotlin指定为Android的一级开发语言。第一个程序Hello World!:package com.fuyunwang.kotlin/** * Created by BeautifulSoup on 2017/7/24. */fun m原创 2017-07-24 15:43:53 · 552 阅读 · 0 评论 -
浅谈Android之于新线程创建Handler
Handler作为Android中举足轻重的知识点,无论是在实际开发还是在面试中都经常会用到,并且在网上关于Handler的讲解不胜枚举,本人深知水平有限,因此仅在此做一下自己的小结,权当学习中的笔记。之前写过一篇有关Handler中基本方法使用的一篇文章http://blog.csdn.net/james_shu/article/details/53367035,本篇基于此,写出一些其他的新内容。原创 2017-02-14 15:02:32 · 526 阅读 · 0 评论 -
浅析Android之Configuration
Android中Configuration类专门用于描述手机设备上的配置信息,这些配置信息既包括用户特定的配置项,也包括系统的动态设备配置。Configuration对象的获得:Configuration configuration=getResources().getConfiguration();这样我们就可以通过Configuration对象提供的基本属性来获取系统的配置信息,例如: p原创 2017-02-14 10:54:32 · 4601 阅读 · 0 评论 -
使用OkHttp的那些事儿(四)
本篇继续介绍关于OkHttp的其他使用姿势。1.OkHttp结合gson使用:其中ResponseBody.charStream()使用Content-Type响应头来选择在解码响应正文时要使用的字符集。 如果没有指定字符集,它默认为UTF-8。 private void Test5() throws IOException { OkHttpClient client = new O原创 2017-03-01 22:15:15 · 580 阅读 · 0 评论 -
浅谈Serializable与Parcelable
Android中使用Intent来启动Android的组件,而且在启动Android中的组件的时候可以使用Intent携带并传递数据。如: Intent intent=new Intent(MainActivity.this,AnotherActivity.class); intent.putExtra("per_age",20); startActivi原创 2017-02-09 21:41:09 · 408 阅读 · 0 评论 -
使用OkHttp的那些事儿(一)
OkHttp作为目前相当流行的网络请求框架,已经被Google官方认定,而且Google在官方的应用程序中也已经大量的使用。 网络上不乏大量有关于OkHttp的教程,本人才疏学浅,只得将OkHttp的基本使用方式在下面做一个整理。 这里使用 https://api.douban.com/v2/book/search?q=金瓶梅&tag=&start=0&count=1 作为接口调用API。首原创 2017-02-16 18:36:04 · 1713 阅读 · 0 评论 -
Android通知栏沉浸式模式
Google在Android4.4之后提供了沉浸式全屏体验的效果,在沉浸式全屏模式下,状态栏、虚拟按键动态隐藏,使得应用可以充分的使用屏幕空间,从而给人一种身临其境的感觉。此外,Google又在Android5.0之后提出了ColorPalette的概念,让开发者可以自己设定系统区域的颜色,使得整个APP的颜色和系统的颜色风格保持统一。ps(效果图有点大,不好意思)之前写过两篇关于如何实现手机的全屏原创 2017-01-16 10:32:28 · 2059 阅读 · 0 评论 -
浅析Android存储方式以及路径API
首先声明:本篇博客是2017年以来的原创的第一篇的博客,而且本人也已经下定决心,2017年是个新的开始。自此之后的博客都要提高质量,真正将自己的所得分享给需要的Android开发者。PS(如果有不合理之处,希望各位大佬不吝赐教)好,废话少说,直接进入正题。其实本人在刚接触Android的时候就对Anroid系统的存储方式感到迷惑,因而好好整理了一番。首先说一句,平时说的存储分成了内部存储和外部存储。原创 2017-01-14 19:57:16 · 3407 阅读 · 3 评论 -
Android获得标题栏,状态栏,控件,屏幕高度
注意,数据的获取应该在onWindowFocusChanged函数中进行,防止数据获取错误。 首先声明整个手机屏幕的获取:activity.getWindowManager().getDefaultDisplay();声明整个应用(除了状态栏之外的区域的获取): Rect outRect = new Rect(); activity.getWindow().getDecorVie原创 2016-11-27 10:52:18 · 2304 阅读 · 1 评论 -
Android之TextView的ellipsize属性
TextView中可以设置一个ellipsize属性,作用是当文字长度超过textview宽度时的显示方式:例如,”encyclopedia”显示, 只是举例,以实际显示为准:)Android:ellipsize=”start”—–省略号显示在开头 “…pedia” android:ellipsize=”end”——省略号显示在结尾 “encyc…” android:ellipsize=”mi转载 2016-12-24 14:49:16 · 970 阅读 · 0 评论 -
Android自定义属性实现图片屏幕的适配
屏幕适配是个经常遇到的问题,下面,我以如何将一张图片不拉伸,不裁剪的方式来完整的展示一张图片; 一、首先来看一下最初的状态: 我首先在主界面放了一张图片:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/too原创 2016-12-18 12:30:14 · 920 阅读 · 0 评论 -
上拉加载更多之ListView实现
在Android的应用程序中,使用列表来展示内容的应用是最多的。当然,我们从早期的ListView到目前的RecyclerView,列表控件的实现更加的优秀。但无论怎样,我们都会在使用列表控件的时候添加下拉刷新和上拉加载更多。这的效果有多种实现当然也会针对ListView与RecyclerView有着对应的实现,本篇我首先以ListView来实现一下对于下拉刷新和上拉加载更多的效果。本篇的效果是通过原创 2017-01-31 13:11:39 · 1279 阅读 · 0 评论 -
使用OkHttp的那些事儿(二)
上一篇介绍了关于OkHttp进行GET请求和POST请求最基本的用法,下面继续介绍OkHttp的使用。 上一篇地址:http://blog.csdn.net/james_shu/article/details/55270728首先来介绍一下有关于OkHttp将json作为请求参数来请求服务器端并得到响应的使用流程: OkHttpClient client=new OkHttpClie原创 2017-02-23 20:26:52 · 511 阅读 · 0 评论 -
Android6.0M运行时权限封装
本篇主要是介绍权限封装的五个步骤,由于很简单,故只放上代码:package com.fuyunwang.androidmpermission;import android.content.DialogInterface;import android.content.Intent;import android.content.pm.PackageManager;import android.ne原创 2017-05-01 21:41:11 · 435 阅读 · 0 评论 -
浅谈自定义View之自定义布局FlowLayout
View在Android中还是比较大的一个点,当然其中的内容是异常的多,而且使用也是十分的灵活。网上很多大神都已经有了自己对View的总结,那么作为一个新司机,我也打算开始这个模块的总结(尽可能的说明白),并且以后会逐渐的推出有关于View的一系列文章。当然其中总有不当之处,还请各位多多指教,鄙人不胜感激。ok,本次给大家带来的是一个自定义ViewGroup的案例,主要是实现选项功能,这种效果在网上原创 2017-03-17 13:00:56 · 1256 阅读 · 0 评论 -
浅析Android事件传递
Android中View的事件传递主要涉及三个方法:dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()。下面详细分析一下,当三个方法返回不同的值的时候,事件是如何从最上层Activity往下层子View传递的。1.Activity.dispatchTouchEvent 返回 true |fasle 事件只在 Activity 的 d原创 2017-03-14 16:42:00 · 808 阅读 · 0 评论 -
Android系统版本与代号
版本号 API级别 发布日期 版本代号 CodeName(系统名称) Android 1.0 1 阿童木 BASE Android 1.1 2 2008.9 发条机器人 BASE_1_1 Android 1.5 3 2009.4.30 纸杯蛋糕 CUPCAKE Android 1.6 4 2009.9.15原创 2017-03-14 16:04:47 · 11984 阅读 · 0 评论 -
ToolBar的再使用
上一篇介绍了ToolBar的最基本的用法,本篇我接着上一篇来说一下ToolBar的其他用法。如果不清楚基本用法的可以参照我的上一篇博文: http://blog.csdn.net/james_shu/article/details/61661217注意上次的代码都是在Toolbar toolbar= (Toolbar) findViewById(R.id.toolbar);与setSupportA原创 2017-03-13 12:05:42 · 1198 阅读 · 0 评论 -
浅谈ToolBar的基本用法
Google从Android5.0开始推进MaterialDesign规范,伴随着AppCompatActivity,ToolBar作为其典型的样例已经慢慢融入了众多开发者的怀抱。下面逐步介绍ToolBar的各种玩法。 要使用ToolBar,为了兼容低版本我们要添加gradle依赖:compile 'com.android.support:appcompat-v7:25.1.1'首先,我们创建的每原创 2017-03-12 22:20:38 · 2101 阅读 · 0 评论 -
浅析Android Material Design之TextInputLayout
Material Design(质感设计)是Google工程师基于传统优秀的设计原则,结合丰富的创意和科学技术所发明的一套全新的界面设计语言,主要用于解决Android平台界面风格不统一的问题。在2015年的Google I/O大会上退出的Design Support库将Material Design中最具代表性的一些控件和效果进行了封装,从而方便开发者调用相应的API来实现相应的MD风格。本篇主要原创 2017-02-14 14:20:23 · 968 阅读 · 0 评论 -
使用OkHttp的那些事儿(三)
本篇主要介绍文件的断点续传下载。 原文来自:http://blog.csdn.net/KevinsCSDN/article/details/519342741.Gradle引入依赖: compile 'com.squareup.okhttp3:okhttp:3.6.0' compile 'io.reactivex:rxjava:1.1.6' compile 'io.react原创 2017-02-24 21:45:49 · 564 阅读 · 0 评论 -
Android之GestureDetector基本应用
Android对于手势的检测提供了一系列的API,其中包括对于手势检测的监听器、对于手势识别的API等等。 本篇主要介绍手势检测监听器GestureDetector类的基本使用。Android为手势检测提供了一个GestureDetector类,GestureDetector实例代表了一个手势检测器。 GestureDetector这个类对外提供了两个接口和一个外部类,其中包括: 接口:OnG原创 2017-02-15 21:49:12 · 800 阅读 · 0 评论 -
Android之SoundPool的基本使用
Android对多媒体音频的播放提供了多个API。其中SoundPool主要用于播放短暂急促的音频,如游戏特效等。 基本使用如下:SoundPool soundPool=new SoundPool(1, AudioManager.STREAM_MUSIC, 0);//参数1指的是soundpool中容纳的声音有几个,参数2表示所存放的声音的类型,参数3指的是频的质量,默认是0,//加载音乐文件(注原创 2017-02-15 20:21:18 · 737 阅读 · 0 评论 -
Android调用系统安装界面
Intent intent = new Intent("android.intent.action.VIEW");intent.addCategory("android.intent.category.DEFAULT"); intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"原创 2016-12-10 09:27:05 · 2049 阅读 · 0 评论 -
Android消息机制(Handler),3种方式模拟简单进度条
一、Android通过Handler来实现收发消息的机制,而且在Android不允许在主线程中更新UI,所以一般使用Handler来实现。 Handler中的方法: post(Runnable) postAtTime(Runnable,long) postDelayed(Runnable , long) sendEmptyMessage(int) sendMessage(Message)原创 2016-11-27 21:35:23 · 1460 阅读 · 0 评论 -
Android中自定义View
在Android中自定义View,定义一个类继承自View。View类中没有无参的构造方法所以要覆写其中的构造方法。之后覆写onDraw()方法,在onDraw()方法中完成view的绘制操作。注意在计算机中的坐标轴x轴向右为正方向,y轴向下为正方向。 一:绘制图形使用画笔Paint完成: 1.setAntiAlias:设置画笔的锯齿效果 2.setARGB:设置画笔的a,r,g,b值 3.原创 2016-07-14 20:15:04 · 349 阅读 · 0 评论 -
Android中的Service
一:Service是Android中的四大组件之一,与Activity非常相似。自定义Service的方法就是定义一个类继承自Service,然后必须覆写其中的onBind()方法,这个方法是当这个Service被绑定的时候就要回调。 onBind()方法返回一个IBinder对象,当绑定这个Service的时候,通过这个对象与组件进行通信。 二:关于绑定本地的Service并且与其进行通信:I原创 2016-07-13 21:49:57 · 305 阅读 · 0 评论 -
Android之Gallery的使用
Android的Gallery是一个类似于相册列表的控件,这里说明简单的实现,主要在于BaseAdapter实现类和持有者的结合使用。 1.主布局文件声明Gallery控件, <Gallery android:id="@+id/myGallery" android:layout_width="wrap_content" android:layo原创 2016-07-24 19:59:32 · 461 阅读 · 0 评论 -
Android中利用Fragment同时支持屏幕和手机
1.设计横屏时屏幕左边的样式,定义一个类FragmentA继承自ListFragment 重写onAttach()方法,并且定义数据源。 2.在onAttach()方法中设置我们的适配器用于给FragmentA提供数据String[] data={"计算机组成原理","操作系统原理","编译原理","算法","JAVAEE","JAVAWEB","Python",原创 2016-06-15 10:16:08 · 575 阅读 · 0 评论 -
Android网络编程(一)
首先介绍HttpURLConnection类的GET方式请求网络下载图片的步骤: 1.首先在布局文件中声明控件,button和imageview 2.在java代码中找到相应的控件,为button注册点击的事件注意在Android4.0之后google规定Andorid的网络请求为耗时操作,必须在子线程中完成网络的请求 3.在点击事件中得到URL对象,传入的参数是要访问的网络地址 U原创 2016-06-14 21:35:41 · 559 阅读 · 0 评论 -
Android引用控件之ViewPager
ViewPager实现了内容的滑动换页效果,实现方法与ListView有些类似 一:ViewPager是位于android.support.v4包中的控件,使用时首先在布局文件比如activity_main中声明: <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:la原创 2016-06-13 17:40:18 · 1764 阅读 · 0 评论 -
Android文件存储(一)
Android中的文件存储包括多种方式,下面介绍除了使用SQLite数据库存储的方式方法,数据库存储另做详述: 一:SharedPreferences存储,是一种内部存储,一般用于存储配置信息,如checkbox是否勾选来确认用户的状态 1.通过上下文context.getSharedPreferences的方法得到SharedPreferences对象sp,方法传2两个参数,第一个参数是保存到原创 2016-06-13 17:25:30 · 622 阅读 · 0 评论 -
Fragment生命周期
1.Fragment必须放在一个Activity中,Fragment有自己的生命周期,并且自身的生命周期受到了宿主Activity生命周期的影响 2.创建Fragment的时候系统会调用一个onCreate()的回调函数, 当用户离开当前的Fragment的时候调用此函数,用来保存持久化数据。 3.onCreateView()函数是Fragment第一次绘制UI的时候调用,这个函数必须覆写才能原创 2016-06-10 17:30:29 · 434 阅读 · 0 评论 -
Fragment简介
Fragment——>碎片是在Android版本3.0(API11以上)引入的新技术,目的是为了保证同一个应用程序的界面能够适应不同屏幕大小的设备,毕竟平板的屏幕更大,手机的屏幕略小。使用碎片(Fragment)能够很好的解决这类的问题。 使用方法: 1.由于碎片是Activity的UI组件的一部分,所以第一步,要新建布局文件设置fragment的内容: <?xml versi原创 2016-06-10 16:41:04 · 443 阅读 · 0 评论 -
Android文件存储(二)与ContentProvider
本篇介绍Android中的数据库SQLite,同时介绍Android中的四大组件中的ContentProvider 一:数据库的创建: 1.定义一个类继承SQLiteOpenHelper,重写其中的构造方法:public class MyOpenHelper extends SQLiteOpenHelper { public MyOpenHelper(Context contex原创 2016-06-26 20:28:13 · 765 阅读 · 0 评论 -
Android中取得手机屏幕的信息
在Android中取得手机屏幕的信息使用的是Android.util包下面的 DisplayMetrics类。 下面是取得手机屏幕的分辨率的代码: DisplayMetrics dm=new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); String strOpt=原创 2016-07-09 08:31:17 · 774 阅读 · 0 评论 -
Android的四大组件之BroadcastReceiver
外拨电话的实现 1.定义一个类继承BroadcastReceiver 2.在清单文件配置一下: <!-- 配置广播接收者 --><receiver android:name="com.example.androiddemo003.OutGoingReceiver"/> <intent-filter> <action android:name="android.intent.acti原创 2016-06-18 12:50:56 · 393 阅读 · 0 评论 -
Android手势识别
Android sdk 给我们提供了GestureDetector(Gesture:手势,Detector:识别)类,通过这个类我们可以识别很多的手势,主要是通过他的onTouchEvent(event)方法完成了不同手势的识别。GestureDetector这个类对外提供了两个接口:OnGestureListener,OnDoubleTapListener,还有一个内部类SimpleOnGestu转载 2016-11-25 13:32:30 · 420 阅读 · 0 评论 -
AndroidStudio使用Gradle
一:简介: Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。实现了依赖管理(跟Maven差不多)依赖管理的方式:从 maven 远程仓库、 nexus 私服、 ivy 仓库以及本地文件系统的 jars 或者 dirs 。 二:组成: 1.proguard-rules.pro:这个文件对Java代码编译生成的class文件进行反原创 2016-11-25 09:40:20 · 531 阅读 · 0 评论 -
Android Intent详解
在读罢他人的博客之后,自己对Intent的整理如下: 首先说自己的心得:Intent实现了解耦; 一:Intent是”目的,意图”,主要用来在组件之间实现通信。具体而言: 1.Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之原创 2016-11-17 20:48:47 · 531 阅读 · 0 评论