Android小记
wangke_king
真正的光芒,需要一点点时间
展开
-
Ip地址校验
/** * 使用正则表达式的方式校验Ip */ private fun checkIpEx(ip: String): Boolean { var rexEx = """(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]).(\d{1,2}|1\d\d|2[0-4]\d|25[0原创 2017-05-23 21:50:12 · 1852 阅读 · 0 评论 -
点击Dialog以外的区域不让其隐藏的解决办法
点击Dialog以外的区域不让其隐藏的解决办法直接上图看问题:当我们在进行一些比较耗时操作的时候,应该展示给用户一个提示界面来告诉用户这个地方你要等一下才行,当提示框显示出来之后,用户手一抖点击到了提示框以外的区域,然后提示框就莫名奇妙的消失了,想想看,这个得是多么垃圾的体验。下面上代码: MaterialDialog materialDialog = new MaterialDialog.B原创 2017-07-24 17:14:51 · 4386 阅读 · 1 评论 -
动态修改actionbar的Menu菜单中的显示内容
动态修改actionbar的Menu菜单中的显示内容当我们在给Actionbar添加一个menu菜单的时候一般使用onCreateOptionsMenu(Menu menu)这个方法,但这个onCreateOptionsMenu方法在整个Activity的生命周期中只被调用一次,对于动态的修改menu的内容显然不适用。Android给我们提供了一个onPrepareOptionsMenu(Menu原创 2017-08-14 16:05:13 · 3189 阅读 · 0 评论 -
使用ExpandableListView实现好友分组
当我们需要给ListView中的内容进行分组显示的时候,使用ListView就无法去完成这个需求了,这个时候我们就需要使用到ListView的子类ExpandableListView来实现内容的分组。ExpandableListView是什么东西呢?简单来讲就是一个增强版的ListView,它可以在点击父item来展开或收起列表,与之类似的就是我们经常使用的QQ中分组的功能,下面我们仿照QQ来使用E原创 2017-04-04 13:23:47 · 1167 阅读 · 0 评论 -
ListView显示多种布局样式
有时候我们可能需要在ListView中展示多种布局样式,比如qq中的聊天界面,会展示出至少两种布局,一个是接收到的消息,另一个则是发送出去的消息。这时候我们就可以使用BaseApdater为我们提供的方法来实现我们所需要的用来实现多种布局样式的ListView。先看一下运行效果:在定义BaseAdapter的时候,我们需要重写它的getView()方法,这个方法就是用来获取布局的,那么我们只需要在获原创 2017-04-03 11:49:21 · 2197 阅读 · 1 评论 -
Android Video播放Raw目录下的视频文件
比赛中遇到的一道题目就是从播放Raw目录下的视频,由于平常的开发中从来没这么干过,完全不符合常理的事情。下面记录一下播放的方法: mVideoView = (VideoView) findViewById(R.id.videoView); mVideoView.setVideoURI(Uri.parse("android.resource://"+getPackageN原创 2017-03-21 19:53:04 · 16133 阅读 · 0 评论 -
Android实现半透明的AlertDialog
运行效果:实现代码: public void clickDialog(View v){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("这是一个提示的标题"); builder.setMessage("我是一个内容"); bui原创 2017-03-10 10:19:40 · 906 阅读 · 0 评论 -
Android中的应用资源
Android的应用资源可以分成两类:1.可以通过R资源的清单了直接访问应用中的资源,这类资源保存在res目录下2.不可以通过R资源清单类直接通过索引进行访问,这类资源存储在assets目录下Android SDK 会在编译应用的时候,在R类中给res目录下的文件创建索引项创建Assets目录:在AndroidStudio中,直接在当前的app中右键:创建后的Assets:AssetManager类原创 2017-02-27 15:02:43 · 528 阅读 · 0 评论 -
在Activity里调用Service中的方法以及MediaPlay类的使用
写了个比较简单的音乐播放器用来练习一下Service的使用方法,以及Android系统内置的多媒体播放的类MediaPlay的使用方法。 下面看一下程序的运行效果:下面直接贴源码:MainActivity.javapublic class MainActivity extends AppCompatActivity { private MusicService.MyBinder binde原创 2017-02-19 16:44:05 · 1239 阅读 · 0 评论 -
使用AsyncTask进行异步加载
对于异步加载在平常的开发中使用的最多的就是Thread+Handler来完成的,但在处理单个后台异步任务的时候使用Handler进行处理会显得代码比较多,而且结构比较复杂,当然这是相对于AsyncTask来讲的,但是在进行多个异步操作以及也涉及到UI的更新操作的时候使用AsyncTask就会变得复杂起来,对于异步加载方案的选择还是需要以及业务逻辑的复杂程度来决定。为了进行更简单的异步操作,Googl原创 2017-02-24 15:40:18 · 550 阅读 · 0 评论 -
广播接收者与广播发送者复习
广播接收者的本质就是一个全局的监听器,用于监听系统全局的广播消息,比如:拨打电话、收发短信、屏幕解锁等事件产生了,系统会发送广播,只要应用程序接受到这条广播,就知道系统发生了相应的事件,从而执行相应的代码。创建一个广播接收者:声明一个类继承自BroadcastReceiver,重写BroadcastReceiver的onReceiver方法即可。指定BroadcastReceiver可以匹配的I原创 2017-01-23 15:50:39 · 643 阅读 · 0 评论 -
可以滑动选择的图片选择器的实现思路
直接继承RecyclerView实现可滑动的图片选择所遇到的问题:左右滑动和上下滑动的事件拦截问题,导致滑动选择时体验过差(左右滑动的时候容易触发上下滑动)、(⊙o⊙)… 以失败告终!,下面记录一下新的思路 :1. 触摸事件的问题解决方案:自定义GalleryView使其继承自FrameLayout或者其他已经实现好的布局,里面填充RecyclerView用于展示手机中的图片,外层包裹一层布局的目的原创 2017-07-19 14:43:53 · 1476 阅读 · 1 评论 -
Android中获取系统所认为的最小滑动距离TouchSlop
int TouchSlop = ViewConfiguration.get(this).getScaledTouchSlop();原创 2017-05-18 21:12:19 · 11896 阅读 · 1 评论 -
Android检查当前网络状态是否可用并
当我们进入App的时候,首先会判断当前的网络状态是否可用,如果不可用就弹出一个Dialog让用户进行网络的设置,点击设置的时候跳转到系统的网络设置界面。运行效果:网络状态的检查(WangKeUtils.java): /** * 检查网络是否可用 * @param context * @return true,false */ public stati原创 2017-05-13 10:55:20 · 1405 阅读 · 1 评论 -
点击两次返回键退出
点击两次返回键退出两次点击的间隔时间为两秒钟代码:public class MainActivity extends Activity { private boolean isExit = true; private Context mContext; @Override protected void onCreate(Bundle savedInstanceState)原创 2017-05-13 11:10:09 · 869 阅读 · 0 评论 -
AlertDialog实现单选对话框
AlertDialog实现单选对话框效果:实现代码: new AlertDialog.Builder(getActivity()) .setTitle("设置语言") .setSingleChoiceItems(new String[]{"简体中文", "English"}, 0, new DialogInterface.OnClic原创 2017-05-13 13:55:07 · 1108 阅读 · 0 评论 -
List使用sort进行排序
代码: roadBeanArrayList.sort(new Comparator<RoadBean>() { //按照道路id进行升序排序 @Override原创 2017-05-13 15:33:02 · 4681 阅读 · 0 评论 -
Android中设置Activity全屏的几种方式
将Activity设置成全屏的几种方式:1.在代码中设置 public class ShowImageActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);原创 2017-05-24 18:14:31 · 679 阅读 · 0 评论 -
获取手机屏幕的分辨率
获取手机屏幕宽和高的方法: WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE); int screenWidth = wm.getDefaultDisplay().getWidth(); int screenHeight = wm.getDefaultDisplay().g原创 2017-05-05 16:41:30 · 779 阅读 · 0 评论 -
Android获取图片的宽度和高度
获取图片的宽高: BitmapFactory.Options options = new BitmapFactory.Options(); BitmapFactory.decodeResource(getResources(),R.drawable.ico,options); //获取图片的宽高 int height = options.o原创 2017-05-05 16:49:43 · 11784 阅读 · 0 评论 -
使用广播监听短信到来并获取短信内容
直接上onReceive()方法中的代码,清单文件中的action的配置就不再给出public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(action.equals("android.provider.Telephony.SMS_RECE原创 2017-05-06 09:41:53 · 1155 阅读 · 0 评论 -
哈哈,我是一个介绍
由于脑容量有限,以及一直以来一直没有寻觅到一款好的记录笔记的软件,从onenote->印象笔记->为知笔记,记录笔记的战场也是不断地转移,笔记中凌乱的归类加上阅读上的不便,作为一个强迫症患者完全无法接受。于是决定那就把笔记写在博客中吧(受大神启发),于是【Android小记】这个分类就诞生了……你……你……要写点什么呢???哈哈,自问自答,一些比较常用的工具代码(那种写一遍就不想写第二遍的那种),比原创 2017-05-06 09:57:42 · 234 阅读 · 0 评论 -
火星坐标与地球坐标之间的相互转换的工具类
火星坐标是个啥: 是一种国家保密插件,也叫做加密插件或者加偏或者SM模组,其实就是对真实坐标系统进行人为的加偏处理,按照特殊的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同。而加密后的坐标也常被人称为火星坐标系统。 所有的电子地图、导航设备,都需要加入国家保密插件。第一步,地图公司测绘地图,测绘完成后,送到国家测绘局,将真实坐标的电子地图,加原创 2017-05-06 11:55:49 · 1954 阅读 · 0 评论 -
使用Android原生的Api进行GPS定位获取位置信息
运行效果:代码:public class LocationActivity extends AppCompatActivity { private TextView tv_location; private Context context; @Override protected void onCreate(Bundle savedInstanceState) {原创 2017-05-06 12:19:52 · 16357 阅读 · 1 评论 -
内容提供者(ContentProvider)复习
ContentProvider是不同应用程序之间进行数据交换的API,ContentProvider以某种Uri的形式对外提供数据,允许其它应用访问或修改数据,其它的应用程序使用ContentResolver根据Uri去访问指定的ContentProvider提供的数据。 下面看一下内容提供者的使用步骤: 定义一个内容提供者: 定义一个类继承ContentProvider,实现未实现的方法原创 2017-01-16 21:01:33 · 1115 阅读 · 0 评论