- 博客(35)
- 资源 (14)
- 收藏
- 关注
翻译 使用 DiskLruCache 缓存bitmap
A memory cache is useful in speeding up access to recently viewed bitmaps, however you cannot rely on images being available in this cache. Components like GridView with larger datasets can easily f
2015-10-31 08:21:34 818
原创 Android bitmap 的缓存-LruCache
Android 内存有限,当我们需要加载比较多的bitmap时(如做新闻阅读类app),我们需要用到LruCache缓存,一下是主要代码 // Get memory class of this device, exceeding this amount will throw an // 得到设备的运行内存 final int memClass = ((Activi
2015-10-30 19:55:52 572
原创 高效加载较大的 Bitmaps
今天学习bitmap的加载,下面是代码BitmapFactory.Options options = new BitmapFactory.Options(); //拿到设置参数的optionsoptions.inJustDecodeBounds = true; //先设置inJustDecodeBuonds为true,此时
2015-10-30 19:42:18 570
原创 局域网内获取周围设备的ip和端口
现在智能家居,物联网非常火,推进了WiFi模块的使用,出货量大为增加。据了解,现在大部分WiFi模块在第一次配置的时候是采用udp广播的方式来通讯的,手机端将路由的名称和密码通过udp 广播的方式发送给WiFi模块,这样的方式适合远程控制,在和WiFi模块近距离通讯的时候如果WiFi模块已经连上了路由,我们如何获取WiFi模块的ip,和 端口呢?下面介绍mdns协议--发现周围设备的ip和端口。
2015-10-30 10:04:42 4248
原创 Android 利用 path 绘制任意图形
有时候我们看到一些非常绚丽的动画效果,如注满效果,很多都是用path来绘制的 path.moveTo(100, 100); 移动到某个点 path.lineTo(160, 100); 连线到某个点path.quadTo(60, 100, 80, 120); 曲线连接,前面2个参数为 控制点path.close(); 闭合
2015-10-29 11:19:43 751
原创 android OptionsMenu 和 ContextMenu
1 OptionsMenu 是我们手机上的菜单键弹出的菜单,ContextMenu 则是 我们长按一个控件弹出的菜单现在大部分浏览器都有长按复制的功能,如下图:2,ContextMenu 的使用步骤 1.重写Activity或者Fragment中的onCreateContextMenu方法:[java] v
2015-10-29 08:44:47 565
原创 Android invisible 和 gone
首先看原始的 2个textviewinvisible :不可见,控件依旧占有屏幕控件,如下gone :不可见,控件不占用屏幕控件,如下
2015-10-28 10:54:18 505
原创 Java 学习
今天在CSDN博客上看到了一些Java多线程的内容,很好,下面是链接http://qifuguang.me/categories/
2015-10-27 15:25:47 333
原创 Android 状态栏
先看一下 哪个部分是状态栏和导航栏1.去除导航栏在onCraete()方法中的setContentView();的之前调用下面这句代码 requestWindowFeature(Window.FEATURE_NO_TITLE);2.去除状态栏/通知栏在onCraete()方法中的setContentView();的之前调用下面这句代码
2015-10-26 19:57:19 402
原创 PreferenceActivity
最近在看开源中国的源码时,学习了PreferenceActivity,下面对PreferenceActivity做一下总结1,继承关系PreferenceActivity 继承于 ListActivity,实现了 PreferenceManager.OnPreferenceTreeClickListener, PreferenceFragment.OnPrefe
2015-10-26 17:21:29 417
转载 Android开发:shape和selector和layer-list的(详细说明)
和在Android UI设计中经常用到。比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到和。可以这样说,和在美化控件中的作用是至关重要。在看这篇文章之前,可以看下这个小例子:镂空按钮的实现1.Shape简介作用:XML中定义的几何形状位置:res/drawable/文件的名称.xml使用的方法:Jav
2015-10-26 16:41:58 328
原创 android keepScreenOn
使用keepScreenOn属性非常简单step 1:在你需要常亮的Activity对应的布局文件中,随便给一个UI组件设置:android:keepScreenOn="true" 然后,只要Activity不被停止的话,那么屏幕会一直保持常亮step 2:怎么关闭常亮么?也很简单啊~在你需要关闭常亮的时候,修改UI组件的属性,把他设置为false就可以
2015-10-24 09:23:06 4739
转载 ViewStub
本节引言:学习完上一节的include布局复用以后,相信大家都体会到了布局优化的好处,不过当我们include的布局是一些复杂控件的话,而这些控件我们在实际使用过程中又用得不多的话,往往会降低页面的加载速度;虽然,我们也可以为其设置visibility = "gone"的属性,但是在inflate布局的时候,这些控件依旧会被inflate,也就是说依旧会创建
2015-10-24 09:17:38 534
转载 Android基础入门教程——8.3.3 Paint API之—— MaskFilter(面具)
本节引言:在Android基础入门教程——8.3.1 三个绘图工具类详解的Paint方法中有这样一个方法: setMaskFilter(MaskFilter maskfilter): 设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等! 而我们一般不会直接去用这个MaskFilter,而是使用它的两个子类: BlurMaskFilt
2015-10-24 08:23:56 513
转载 onConfigurationChanged 详解
onConfigurationChanged的作用API原文说明:android:configChangesLists configuration changes that the activity will handle itself. When a configuration change occurs at runtime, the activity is shut do
2015-10-23 15:15:23 858
转载 android windowsoftinputmode属性详解
android:windowSoftInputModeactivity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。这个属性能影响两件事情:【一】当有焦点产生时,软键盘是隐藏还是显示【二】是否减少活动主窗口大小以便腾出空间放软键盘它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adju
2015-10-23 15:03:37 270
原创 Android:Style和Theme
Style是针对窗体元素级别的,改变指定控件或者Layout的样式Theme是针对窗体级别的,改变窗体样式;style演示定义一个styles,在res/values/目录下建立styles.xml: style name="mystyle" parent="AppBaseTheme"> item name="a
2015-10-23 14:50:02 306
原创 activity 启动时短暂黑屏问题
程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初始化列表数据等,如果耗时过长,就会出现好像黑屏的现象 1./res/values/styles.xml 在 Theme 中,添加一个 android:windowBackgrounds 属性,设置需要的图片2.在 AndroidManifest.xml 中设置Theme到首个启动
2015-10-23 14:26:29 516
原创 Android 使用自定义字体
Android 开发中 有时候我们会使用到不同的字体,如:华文行楷,简体,隶书等。下面介绍怎么使用这些自定义的字体呢,以TextView 为例1, 首先 我们需要下载ttf字体文件,这个可以去百度搜索 2,在Android的工程目录下新建assets 文件夹,并把需要的字体的ttf文件添加到该目录或该目录的子目录3,代码调用设置字体pr
2015-10-19 10:44:48 388
原创 Java 代理模式
代理模式给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用。代理就是一个人或一个机构代表另一个人或者一个机构采取行动。某些情况下,客户不想或者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的作用。客户端分辨不出代理主题对象与真实主题对象。代理模式可以并不知道真正的被代理对象,而仅仅持有一个被代理对象的接口,这时候代理对象不能够创建被代理对象,被代理对象必须有系统的其他角
2015-10-19 10:15:43 333
转载 Android开发:shape和selector和layer-list的(详细说明)
和在Android UI设计中经常用到。比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到和。可以这样说,和在美化控件中的作用是至关重要。在看这篇文章之前,可以看下这个小例子:镂空按钮的实现1.Shape简介作用:XML中定义的几何形状位置:res/drawable/文件的名称.xml使用的方法:Jav
2015-10-19 08:11:38 410
转载 Android开发面试经——2.常见Android基础笔试题
1、Android四大组件是什么?作用以及应用场景? Android 的四大组件分别是是Activity,Service,BroadcastReceiver和ContentProvider;Activity: 从字面上理解,Activity是活动的意思。一个Activity通常展现为一个可视化的用户界面,是Android程序与用户交互的窗口,也是Android组件中最基本也是最复杂
2015-10-17 11:33:01 634
转载 Android开发面试经——3.常见Java基础笔试题
因为Androd使用Java语言来编程的,所以我们做Android开发全面的掌握Java基础是必须的。在面试的过程中,我们发现很多公司发的笔试题有很多知识点都是Java的,搞安卓久了,Java基础的一些知识点也都快忘了,今天就让我们来一起复习一些Java基础,希望能在面试中用到;1、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 方法的重
2015-10-17 11:28:43 451
转载 Android开发面试经——5.常见面试官提问Android题2
一般的面试流程是笔试完就接着是面试了,面试时技术经理会问你一些你工作中遇到的Android方面的问题,谈谈你所做的项目,和在项目中所扮演的角色。今天我就给大家整理一些,面试中常见的面试官提的一些问题?1.要做一个尽可能流畅的ListView,你平时在工作中如何进行优化的? ①Item布局,层级越少越好,使用hierarchyview工具查看优化。 ②复用convertView
2015-10-17 11:06:18 518
转载 Android开发面试经——6.常见面试官提问Android题1
1.HttpURLConnection和HttpClient他们各自的优缺点是什么? HttpUrlConnection 在 2.3 以前的版本是有 bug 的,所以之前的版本推荐使用 HttpClient,但是 google 现在已经不维护 HttpClient 了,5.1里面已经把 HttpClient 标过期。另外 HttpURLConnection 支持gzip压缩等,推荐首选它。
2015-10-17 10:44:01 468
转载 AndroidManifest.xml文件详解
AndroidManifest.xml 是每个android程序中必须的文件,它位于整个项目的根目录。我们每天都在使用这个文件,往里面配置程序运行所必要的组件,权限,以及一些相关信息。但是对于这个文件,我们真正又了解多少了,还是只是停留在只会简单的配置,而不明白其中的具体含义,以及为什么要这样设置?今天就让我们来详细的学习一下这个文件里各项参数的具体含义,因为它是整个应用的入口,所以有助于我们更加
2015-10-17 10:27:57 366
原创 java 对象 赋值
首先看以下代码:List list;List mList = new ArrayList();list = mList;mList.add("aaa");list.add("bbb");System.out.println(mList);打印出来的mList 发现“bbb”也添加进去了,但是我们觉得奇怪,list才添加了“bbb”,为什么mList的
2015-10-16 10:00:55 348
原创 Android开发:Fragment不同操作的生命周期
使用add方法切换时:载入Fragment1Fragment1 onCreateFragment1 onCreateViewFragment1 onStartFragment1 onResume用以下代码切到Fragment2: FragmentTransaction ft = getFragmentManager().beginTransaction()
2015-10-16 09:57:07 393
原创 android中完全退出程序的四种办法
Android程序有很多Activity,比如说主窗口A,调用了子窗口B,如果在B中直接finish(), 接下里显示的是A。在B中如何关闭整个Android应用程序呢?本人总结了几种比较简单的实现方法。 1. Dalvik VM的本地方法 android.os.Process.killProcess(android.os.Process.myPid()) //获
2015-10-16 09:55:10 380
原创 Android开发中立即停止AsyncTask和Thread
程序开发中经常会有立即停止线程运行的需要,而通过api是没有办法实现这个目的的,因此对于这个情况,我们需要采取一些“特殊”的方式来实现:1,判断标志位的办法:我们要知道在java的线程中,没有办法停止一个正在运行中的线程。在Android的AsyncTask中也是一样的。如果必须要停止一个线程,我们可以采用这个线程中设置一个标志位,然后在线程run方法或AsyncTask的doIn
2015-10-16 09:53:00 442
原创 Java多线程-新特征-信号量Semaphore
简介信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。概念Semaphore分为单值和多值两种,前者只能被一个线程获得,后者可以被若干个线程获得。以一个停车场运作为例。为了简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看门人允许其中三辆不受阻碍的
2015-10-16 09:51:09 434
转载 自定义View之onMeasure()
可以说重载onMeasure(),onLayout(),onDraw()三个函数构建了自定义View的外观形象。再加上onTouchEvent()等重载视图的行为,可以构建任何我们需要的可感知到的自定义View。本节我们探索自定义View中onMeasure()起到了什么样的作用,题外要插的一句是,Activity框架,View框架中大量的on函数基本上都应用到了Template模式,掌握
2015-10-16 09:49:06 346
转载 Java程序最容易犯的21种错误实例分析
1.Duplicated Code 代码重复几乎是最常见的异味了。他也是Refactoring的主要目标之一。代码重复往往来自于copy-and-paste的编程风格。与他相对应OAOO是一个好系统的重要标志。 2.Long method 它是传统结构化的“遗毒”。一个方法应当具有自我独立的意图,不要把几个意图放在一起。 3.Large Class
2015-10-16 09:46:44 370
原创 由Synchronized的内存可见性说起
在Java中,我们都知道关键字synchronized可以用于实现线程间的互斥,但我们却常常忘记了它还有另外一个作用,那就是确保变量在内存的可见性 - 即当读写两个线程同时访问同一个变量时,synchronized用于确保写线程更新变量后,读线程再访问该 变量时可以读取到该变量最新的值。比如说下面的例子:public class NoVisibility { private s
2015-10-16 09:41:43 440
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人