
android
文章平均质量分 85
wyu-jat
走出属于自己的路
展开
-
Android SDK 代理更新版本迭代
启动 Android SDK Manager ,打开主界面,依次选择「Tools」、「Options...」,弹出『Android SDK Manager - Settings』窗口; 在『Android SDK Manager - Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」输入框内填入 mirrors.neusoft.ed...转载 2018-11-13 21:47:33 · 253 阅读 · 0 评论 -
按字母索引排序listview
首先需要三个工具类第一个工具类:侧边字母表public class SideBar extends View { // 触摸事件 private OnTouchingLetterChangedListener onTouchingLetterChangedListener; // 26个字母 public static String[]原创 2016-04-15 11:31:16 · 683 阅读 · 0 评论 -
android隐藏软键盘
隐藏软键盘的方法有很多种,下面是隐藏软键盘的一种方法,在这么多中方法中,我感觉这种方法比较好用,退出的方式也比较友好// 下面三个用于隐藏软键盘 @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction()原创 2016-04-15 11:29:08 · 494 阅读 · 0 评论 -
Android屏幕适配
对于具有相同像素密度的设备来说,像素越高,尺寸就越大,所以可以换个思路,讲问题从单纯的尺寸大小转换到像素大小和像素密度的角度来占比最高的是480*800,320*480的设备竟然也占据了很大比例,但是和半年前的数据相比较,中低分辨率(320*480、480*800)的比例在减少,而中高分辨率的比例则在不断地增加。虽然每个分辨率所占的比例在变化,但是总的趋势没变,还是这六种,只是转载 2015-12-28 14:33:25 · 824 阅读 · 0 评论 -
Android imageloader加载网络,本地图片方式
imageloader加载图片路径选择先初始化DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder() .showImageForEmptyUri(R.drawable.img_load) .showImageOnFail(R.drawable.img_load).cacheInMe...转载 2015-10-31 23:52:03 · 5505 阅读 · 0 评论 -
webview的具体设置与使用
webview的使用webview加载网页之后可以显示网页内容,但是在点击网页之后还需要JavaScript的支持,所以还需要设计JavaScript,否则显示的会是空白的页面mWebView.getSettings().setJavaScriptEnabled(true);设置完JavaScript之后再加载网页的路径在点击网页上的内容如果不进行设置的话就会自动去到浏览器里面原创 2015-08-26 23:03:46 · 715 阅读 · 0 评论 -
AlarmManager
AlarmManager闹钟的设置可以作为一个特定的时间去触发一个事件三件事;1、建立一接收者receiver,在onreceiver里面写触发/** * 闹铃接受者,时间到了会触发notification的服务 * @author Administrator * */public class AlarmReceiver extends Broadcas原创 2015-08-26 22:58:39 · 351 阅读 · 0 评论 -
listview里面嵌套gridview的防微信朋友圈
看博文之前,希望大家先打开自己的微信点到朋友圈中去,仔细观察是不是发现朋友圈里的有个“九宫格”的图片区域,点击图片又会跳到图片的详细查看页面,并且支持图片的滑动和缩放?这个功能是不是很常用呢?!那么我今天正好做了这个Demo,下面为大家讲解一下。首先按照惯例先看一下效果图吧,尤其不会录制gif动画(哎~没办法,模拟器不支持多点触控,刚好我的手机又没有Root,不能录屏,悲催啊,大家见谅,想要看真实转载 2018-06-24 22:49:03 · 270 阅读 · 0 评论 -
滑动tab
1. 第一种,使用 TabHost + ViewPager 实现该方法会有一个Bug,当设置tabHost.setCurrentTab()为0时,ViewPager不显示(准确的说是加载),只有点击其他任意一个tab后才会加载。有解的同学吼一声~~~~~~~Activity:复制代码 代码如下:package com.swordy.demo.android.frag转载 2015-05-04 19:31:44 · 429 阅读 · 0 评论 -
topbar
设计需要的自定义的UI新建module新建attrs.xml文件在java代码中定义一个控件来继承relativelayout最后要讲数组回收,并创建控件最后将属性设置到控件中设置一个控件的参数并加入到viewgroup父控件中原创 2015-05-04 19:24:43 · 422 阅读 · 0 评论 -
内部类
内部类的特性:1、同生共死2、可以相互访问3、内部成员变量可以访问到父类的东西4、父类可以操作内部类内部类的分类:成员内部类:定义在类的里边,方法的外面局部内部类:定义在方法里面的类静态内部类:public static class 类名匿名内部类:就好像时间监听时候的new View.onClickListener(){},这里new原创 2015-05-04 19:28:29 · 351 阅读 · 0 评论 -
侧滑菜单的实现
一般的侧滑的实现ViewGroup Menu +ContentonTouchEventMOVE:ViewGroup的leftMarginUP:根据现实菜单的宽度,决定将其隐藏或者现实:1、Scroller2、LeftMargin + Thread今天,继承HorizontalScrollView自定义ViewG原创 2016-04-15 11:34:56 · 243 阅读 · 0 评论 -
自定义控件
转载自: http://blog.163.com/ppy2790@126/blog/static/103242241201382210910473/开发自定义控件的步骤:1、了解View的工作原理 2、 编写继承自View的子类3、 为自定义View类增加属性 4、 绘制控件 5、 响应用户消息 6 、自定义回调函数 一、View结构原理Andro转载 2016-09-01 23:34:09 · 385 阅读 · 0 评论 -
懒人库--ButterKnife
懒人库--ButterKnife项目地址https://github.com/JakeWharton/butterknife目的:减轻工作量功能:解放findViewById()和setOnClickListener()性能:对性能的影响微乎其微缺点:可读性差自定义注解的实现都是限定为RetentionPolicy.CLASS,其是通过自动生成java代码的形式来完原创 2016-08-19 15:53:33 · 339 阅读 · 0 评论 -
自定义菜单ContextMenu
CntextMenu依赖第三方库,首先需要在build下添加依赖第一步,为工程添加依赖compile 'com.yalantis:contextmenu:1.0.6'第二步,研究发现,这个菜单只能限定有fragment上,activity上不适合添加此菜单因此在activity中添加了一个toolbar和一个fragment第三步,创建菜单3.1初始化too原创 2016-08-19 15:51:48 · 2099 阅读 · 0 评论 -
RxJava响应式函数编程
RxJava响应式函数编程RxJava最核心的两个东西是Observables(被观察者,事件源)和subscribers(观察者)。observables发出一系列事件,subscribers处理这些事件。一个Observables可以发出零个或者多个事件,知道结束或者出错。每发出一个事件,就会调用它的subscribee的onNext方法,最后调用subscribe.onNex转载 2016-08-19 15:45:53 · 423 阅读 · 0 评论 -
Picasso
Picasso是square公司开源的框架使用非常简单,只需要调用下面这句话Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 、但是在显示的时候还可以设置一下其他的参数Glide.with(getContext()).load(url) .asBitmap(原创 2016-08-19 15:43:38 · 253 阅读 · 0 评论 -
adapter调用notifyDataSetChanged刷新没有起作用的原因
listview列表中的数据更新后刷新是使用listview的基础,但是有时候在更新数据之后使用notifyDataSetChanged方法刷新页面的时候就出现了没反应的现象。原因是adapter会监听一个数据源,这个数据源在一开始的时候会指向一个内存,当指向此内存的数据源发生变化的时候adapter调用notifyDataSetChanged方法就可以进行刷新,但是问题就出在这里数据源往原创 2016-08-19 15:27:28 · 3909 阅读 · 0 评论 -
线程总结
想走的远,那么你基础一定要好。别以为这些不是东西。未来能走多远,要看基础1,两种开启线程方法:子类,Runnable接口。 new Thread(){run(){...}}.start(); new Thread(new Runnable(){run(){...}}).start();2转载 2016-04-15 11:47:26 · 273 阅读 · 0 评论 -
ImageLoader的各种加载方式
imageloader加载图片路径选择先初始化DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder() .showImageForEmptyUri(R.drawable.img_load) .showImageOnFail(R.drawable.img_load).cacheInMe翻译 2016-04-15 11:43:59 · 595 阅读 · 0 评论 -
android手机屏幕适配理论知识
对于具有相同像素密度的设备来说,像素越高,尺寸就越大,所以可以换个思路,讲问题从单纯的尺寸大小转换到像素大小和像素密度的角度来占比最高的是480*800,320*480的设备竟然也占据了很大比例,但是和半年前的数据相比较,中低分辨率(320*480、480*800)的比例在减少,而中高分辨率的比例则在不断地增加。虽然每个分辨率所占的比例在变化,但是总的趋势没变,还是转载 2016-04-15 11:42:33 · 723 阅读 · 0 评论 -
获取屏幕辅助类
/** * 获得屏幕相关的辅助类 */public class ScreenUtils { private ScreenUtils() { throw new UnsupportedOperationException("cannot be instantiated"); } /**原创 2016-04-15 11:40:26 · 277 阅读 · 0 评论 -
Android 网络通信框架Volley简介(Google IO 2013)
Android 网络通信框架Volley简介(Google IO 2013)分类: Android2013-07-02 09:15 94594人阅读 评论(51) 收藏 举报 Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.转载 2015-05-04 19:27:23 · 397 阅读 · 0 评论 -
Android java代码优化问题探究
总体原则:不做不必要的事,不分配不必要的内存1、字符串频繁操作时,多用StringBuffer少用String2、尽量使用本地变量,即反复使用的变量要先保存成临时或者局部变量,尤其是循环中使用的变量3、String方法中的substring和indexOf都是Native(本地)方法,可以大量的使用4、如果函数返回的是String类型,而且返回后的使用就是要加入到StringBuf原创 2015-05-04 20:02:09 · 381 阅读 · 0 评论 -
slidingMenu
继承HorizontalScrollView自定义ViewGroup1、onMeasure决定内部view(子view)的宽和高,以及呢,自己的宽和高2、onLayout决定view的 放置的位置3、onTouchEvent先简单的建立一个XML文件就是menu菜单的布局然后创建一个slidingmenu继承自HorizontalScroll原创 2015-04-25 23:11:33 · 406 阅读 · 0 评论 -
animation动画
animations从整体来说可以分为两大类:第一类:Tweened Animations 渐变动画该类animations提供了旋转,移动,伸展和淡出等等的效果第二类:Frame-by-Frame Animations这一类animations可以创建一个drawable序列,这些drawable可以按照指定的时间间歇一个一个的显示1、Alpha:淡入原创 2015-02-11 17:25:41 · 841 阅读 · 0 评论 -
gson
gson是一种解析工具,使用来处理JSON数据的gson是一个工具,是基于SDK外的一种工具,所以使用到这个工具类的话就要导包google-gson-2.2.2-release.zip包Gson主要包含两种不同的操作一种是讲对象或者不同的内容转化为JSON格式一种是讲JSON格式的内容还原到相应的对象属性或者其他属性这个使用的前提是先要创建出来一个实体类,gson的转化是根据实原创 2015-02-11 17:04:34 · 480 阅读 · 0 评论 -
AndroidUI的优化
AndroidUI的优化有两种方式一种是优化adapter另外一种是优化adapterView1、重用已经生成过的Item View@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubif原创 2015-02-10 21:52:08 · 362 阅读 · 0 评论 -
Intent意图
Intent意图Intent(意图)主要是解决Android应用的各项组件之间的通讯。意图可以激活三种不同的组件:活动activity,服务service和广播接收者intent只负责对应一次的操作,action动作,附带的数据,和自身的数据Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。因此,Int原创 2015-02-10 21:58:23 · 699 阅读 · 0 评论 -
在开机的时候就开启服务,设置监听服务
有很多安全的服务我们需要在一开机的时候就需要进行的了所以我们就需要设置服务在开机的时候就开启首先,权限很重要,所以我们先来看一下开机的权限是什么然后我们就可以创建出我们所需要的服务了这里的服务因为按需开发,所以在这里我就不做介绍了创建出一个服务之后我们需要在manifest里面对服务来进行声明定义这里的声明定义我们还要设置一些比较重要的路径因原创 2015-02-11 17:17:33 · 512 阅读 · 0 评论 -
空指针异常
1:NullPointerException由RuntimeException派生出来,是一个运行级别的异常。意思是说可能会在运行的时候才会被抛出,而且需要看这样的运行级别异常是否会导致你的业务逻辑中断。 2:空指针异常发生在对象为空,但是引用这个对象的方法。例如: String s = null; //对象s为空(null) int length = s.length();//发生空指转载 2015-02-11 17:15:06 · 671 阅读 · 0 评论 -
下拉菜单spinner
先设置一个下拉列表菜单,设置id在activity里面设置通过view寻找id新建一个adapter来对spinner进行数据的填充private ArrayAdapter adapter;adapter可以就是和普通adapter一样//this:不用说,这个肯定是上下文//第二个参数,也是比较简单吧,一个布局//list,这个就是spinner要显示的内容,一个数组原创 2015-02-11 17:11:36 · 326 阅读 · 0 评论 -
ProgressWheel
progresswheel是github上面的一个开源的项目这个是一个圆形进度条这个也是利用github上面提供的源代码现在开始介绍如何使用progresswheel是怎样使用的第一步:首先,我们需要在别人的github上面下载源代码然后把源代码取出来取得是ProgressWheel这个自定义控件的源代码把progresswheel这个源码复原创 2015-02-08 22:23:03 · 805 阅读 · 0 评论 -
PhotoView的使用方法
photoview是github上面的一个开源项目这个项目的主要功能是实现普通的imageview控件的图片缩放,触摸方式包括单电触摸和多点触摸这个项目没有打包成jar包,如下想要使用jar包的话请自己进行打包PhotoVIew的github项目地址: https://github.com/chrisbanes/PhotoViewandroid photovie转载 2015-02-08 22:26:05 · 4431 阅读 · 0 评论 -
技术文档,完成课程表的抓包操作
希望转载的时候注上本文链接,尊重原文作者。谢谢~http://blog.youkuaiyun.com/u010858238/article/details/9029653说起来很奇怪,为什么超级课程表火了这么久,关于原理的帖子就从来没出现过。这是我第一次在优快云写博客,以前都写在自己的网站上了,希望大家能够支持我谢谢。由于我是长沙理工大学的大二在校生,所以我接下来的演示都是基于长转载 2014-10-20 23:57:24 · 700 阅读 · 0 评论 -
SQLite
SQLiteOpenHelper 数据库创建和打开的帮助类首先创建一个类来继承SQLiteOpenHelper再实现SQLiteOpenHelper里面的构造方法/** * 数据库的构造方法,用来定义数据库的名称,数据库查询的结果集,数据库的版本 * @param context * @param name * @param factory * @原创 2015-02-10 21:59:15 · 452 阅读 · 0 评论 -
ip拨号
想要修改拨打出去的电话的话我们需要通过一个receiver来对他进行修改首先我们需要定义一个receiver,这个receiver继承了BroadcastReceiver然后我们在这里获取拨打出去的号码,然后修改输入的号码之后再拨打出去String number = getResultData();这个就是获取在输入框多输入要拨打的电话号码然后我们就需要对此号码进行处理这里原创 2015-02-10 21:45:58 · 493 阅读 · 0 评论 -
tab的实现微信界面
首先定义一个头部和一个底部底部就是tab的 使用四个tab,所以使用四个linearlayout bottom.xmlhttp://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pa原创 2015-04-25 20:50:37 · 508 阅读 · 0 评论 -
Android Studio如何添加工程(project)为library(针对非gradle)
这篇文章还是针对非gradle build的工程,gradle build有一些差别。在Eclipse要引用别的工程为本工程的library很简单,但是在Android Studio还是稍稍有点小复杂的。那如何引用别的工程为本工程的library呢,首先你要将你要引用的工程作为一个module的形式导入。如何Import module,看这篇文章:Android Studio如何impor转载 2015-04-07 11:33:59 · 347 阅读 · 0 评论 -
Android Studio如何import module(针对非gradle)
同样的,非gradle编译的工程和gradle编译的在import module上同样有一些区别。包括操作上,显示上的一些区别,以前的文章中,只要没有标注“非gradle”字样的,都是针对使用gradle来build的。 说到这,估计很多人会问,怎样的算是使用gradle来进行build的,怎样的不算,区别很简单,你只要看到工程根目录下,或者module目录下有没有build.gra转载 2015-04-07 11:32:41 · 567 阅读 · 0 评论