随笔分类 -  android提高篇

摘要:在Android中,可以自定义类,继承ViewGroup等容器类,以实现自己需要的布局显示。如果你在ViewGroup中增加了控件,却无法显示出 来,那么下面这个例子,就可以用来参考了。(主要是要实现onLayout()方法,在这个方法中,对每个子控件进行measure(),然后再布局。)java代码:package com.arui; import android.content.Context; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.w 阅读全文
posted @ 2013-12-05 17:57 brave-sailor 阅读(334) 评论(0) 推荐(0)
摘要:以下是开发中的几个关键步骤:1,首先开启蓝牙2,搜索可用设备3,创建蓝牙socket,获取输入输出流4,读取和写入数据5,断开连接关闭蓝牙下面是一个demo效果图:SearchDeviceActivity.java[java] view plaincopypackagecom.hello.project;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importjava.util.Set;importandroid.app.Activity;importandroid.app.AlertDialo 阅读全文
posted @ 2013-11-28 18:49 brave-sailor 阅读(1160) 评论(0) 推荐(0)
摘要:Android平台支持蓝牙网络协议栈,实现蓝牙设备之间数据的无线传输。本文档描述了怎样利用android平台提供的蓝牙API去实现蓝牙设备之间的通信,蓝牙设备之间的通信主要包括了四个步骤:设置蓝牙设备、寻找局域网内可能或者匹配的设备、连接设备和设备之间的数据传输。以下是建立蓝牙连接的所需要的一些基本类: BluetoothAdapter类:代表了一个本地的蓝牙适配器。他是所有蓝牙交互的的入口点。利用它你可以发现其他蓝牙设备,查询绑定了的设备,使用已知的MAC地址实例化一个蓝牙设备和建立一个BluetoothServerSocket(作为服务器端)来监听来自其他设备的连接。 BluetoothD 阅读全文
posted @ 2013-11-28 18:45 brave-sailor 阅读(342) 评论(0) 推荐(0)
摘要:android中为实现多屏幕适配,可以在layout_hdpi/layout_mdip/layout_ldpi/layout 目录下放置布局文件。如果一个大屏手机适配的话,适配的顺序是layout_hdpi->layout_mdpi->layout->layout_ldpi;如果一个中屏手机适配的话,适配的顺序是layout_mdpi->layout->layout_hdpi->layout_ldpi;如果一个小屏手机适配的话,适配的顺序是layout_ldpi->layout->layout_mdpi->layout_hdpi;假如有一个 阅读全文
posted @ 2013-11-25 17:32 brave-sailor 阅读(182) 评论(0) 推荐(0)
摘要:Looper用于封装了android线程中的消息循环,默认情况下一个线程是不存在消息循环(message loop)的,需要调用Looper.prepare()来给线程创建一个消息循环,调用Looper.loop()来使消息循环起作用,从消息队列里取消息,处理消息。 注:写在Looper.loop()之后的代码不会被立即执行,当调用后mHandler.getLooper().quit()后,loop才会中止,其后的代码才能得以运行。Looper对象通过MessageQueue来存放消息和事件。一个线程只能有一个Looper,对应一个MessageQueue。 以下是Android API中的. 阅读全文
posted @ 2013-11-24 18:47 brave-sailor 阅读(1180) 评论(0) 推荐(0)
摘要:Android中的Looper类,是用来封装消息循环和消息队列的一个类,用于在android线程中进行消息处理。handler其实可以看做是一个工具类,用来向消息队列中插入消息的。 (1) Looper类用来为一个线程开启一个消息循环。 默认情况下android中新诞生的线程是没有开启消息循环的。(主线程除外,主线程系统会自动为其创建Looper对象,开启消息循环。) Looper对象通过MessageQueue来存放消息和事件。一个线程只能有一个Looper,对应一个MessageQueue。(2) 通常是通过Handler对象来与Looper进行交互的。Handler可看做是Loop... 阅读全文
posted @ 2013-11-24 18:37 brave-sailor 阅读(373) 评论(0) 推荐(0)
摘要:用到ExpandableListView时有个箭头图标系统自带的在你自定义布局也不能去掉只要设置一个属性即可,如下: settingLists.setGroupIndicator(null); ~~~~~~~~~~~~~~~~~此处就是设置自定义的箭头图标的。置空则没有了。也可以自定义(但是位置还是在那个地方不推荐)如下:首先,自定义一个expandablelistviewselector.xml文件,具体内容如下: Java代码 加一句代码如下:settingLists.setGroupIndicator(this.getResources().getDrawable(R.layout.ex 阅读全文
posted @ 2013-11-24 18:11 brave-sailor 阅读(432) 评论(0) 推荐(0)
摘要:前言 本章内容是android.widget.ExpandableListAdapter,版本为Android 3.0 r1,翻译来自"深夜未眠",欢迎访问它的博客:"http://chirs1012f.javaeye.com/",再次感谢"深夜未眠" !期待你一起参与Android API的翻译,联系我over140@gmail.com。声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com/ Android中文翻译组:http://goo.gl/6vJQl正文 一、结构public inte 阅读全文
posted @ 2013-11-23 18:04 brave-sailor 阅读(258) 评论(0) 推荐(0)
摘要:当要设置一个闹钟时,可以把数据放在Intent里,再用intent对象生成一个PendingIntent对象,然后用AlarmManager 来邦定PendingIntent对象设置闹钟,具体代码如下:Intent intent = new Intent(context,AlarmReceiver.class);intent.putExtra("id", alarm.getId());intent.putExtra("weekday", getCurrentWeekday());PendingIntent pendingIntent = PendingI 阅读全文
posted @ 2013-11-20 14:44 brave-sailor 阅读(802) 评论(0) 推荐(0)
摘要:shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector。可以这样说,shape和selector在美化控件中的作用是至关重要的。1.Shape简介作用:XML中定义的几何形状位置:res/drawable/文件的名称.xml使用的方法:Java代码中:R.drawable.文件的名称XML中:android:background="@drawable/文件的名称"属性:android:shape=["rectangle" | " 阅读全文
posted @ 2013-11-17 08:03 brave-sailor 阅读(345) 评论(0) 推荐(0)
摘要:ViewPager需要android-support-v4.jar这个包的支持,来自google提供的一个附加包。大家搜下即可。ViewPager主要用来组织一组数据,并且通过左右滑动的方式来展示。现在的大多数应用都会有一个欢迎引导页面,如图所示,通过左右滑动来告知用户一些功能特性。 这个引导图效果用ViewPager可以很轻松的实现。正如前面所说,ViewPager是用来展示一组数据的,所以肯定需要Adapter来绑定数据和view。先写一个Adapter:package com.notice.viewpagerd;import java.util.List;import android.. 阅读全文
posted @ 2013-11-13 15:01 brave-sailor 阅读(228) 评论(0) 推荐(0)
摘要:当需要在 android 7或更高的版本使用 ActionBar,则可以通过继承ActionBarActivity来实现,网上有一个开源项目来兼容老版本显示ActionBar的效果:ActionBarSherlock。使用android.support.v7 来实现ActionBar感觉会更简单一些。android.support.v7 有三个jar文件可供使用,对于ActionBar我们需要使用android-support-v7-appcompat.jar路径:...\sdk\extras\android\support\v7\appcompat\libs 但是直接把这个jar 导入项目是 阅读全文
posted @ 2013-11-04 13:28 brave-sailor 阅读(1276) 评论(0) 推荐(0)
摘要:GridLayout 是在 Android API Level 14 加进来的 它可用来取代 TableLayout 也提供了自由度较大且实用的排版功能 为了兼容 4.0 以下的较低版本 Android 提供了 android.support.v7.widget.GridLayout 这个 libuary 当使用 xml 档做画面排版的时候 如果是使用 android.support.v7.widget.GridLayout 有一些属性需要使用 app 这个 name space app:orientation app:columnCount app:rowCount app:alignm.. 阅读全文
posted @ 2013-11-04 13:26 brave-sailor 阅读(3626) 评论(1) 推荐(0)
摘要:Android是用Java开发,其静态变量的生命周期遵守Java的设计。我们知道静态变量是在类被load的时候分配内存的,并且存在于方法区。当类 被卸载的时候,静态变量被销毁。在PC机的客户端程序中,一个类被加载和卸载,可简单的等同于jvm进程的启动和结束。那么在Android中呢?用的 Dalvik vm也是一样的。不过Android不太突出的进程概念,所以对静态变量的生命周期就会感觉模糊,这种模糊对于值类型是无所谓的,如果是静态的对象引用, 则与内存回收、内存泄漏这些问题有关,有必要加深研究和理解。一、静态变量在类被加载的时候分配内存。类在什么时候被加载?当我们启动一个app的时候,系统会 阅读全文
posted @ 2013-10-31 01:09 brave-sailor 阅读(283) 评论(0) 推荐(0)
摘要:示例demomain.xml布局代码: 1 5 6 11 12 gridview的布局代码 1 2 7 8 15 16 17 18 gridview渐变色背景 1 2 4 5 9 10 11 item布局 1 2 6 7 13 14 22 23 Acitivity代码: 1 package com.android.hzy.popupwindow; 2 3 import android.app.Activity; 4 import android.graphics.drawable.... 阅读全文
posted @ 2013-10-30 18:35 brave-sailor 阅读(256) 评论(0) 推荐(0)
摘要:方法一(这种方法可以处理popupwindows dimiss的时候一些其他的操作,比如让其他控件的隐藏,消失等):代码如下popupWindow.setFocusable(false);//focusable要为false(不设置默认的就是False);//这是Activity 的OnTouchEvent。OnTouchEvent代表的是Activity 获得事件(即为PopupWindow之外)@Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubif (popu 阅读全文
posted @ 2013-10-30 16:18 brave-sailor 阅读(342) 评论(0) 推荐(0)
摘要:1. ListView的OnItemClickListener不被触发的另外一种情况如上图,在一个ItemView中,只有一个TextView位于最左侧,他的右侧是空白区域,没有任何控件,当点击右侧区域时,并不会触发OnItemClickListener,当点击TextView所在的区域时,就能触发这个事件。看看这个事件的执行流程右侧空白的部分没有View控件,也就是说虽然用手指点击了这一部分,但是没有view获取焦点,Android的事件触发是从顶层view一层层往下寻找的,如果有view获取焦点,就交给这个view处理,如果没有,就交给activity处理。click事件与touch事件的 阅读全文
posted @ 2013-10-30 14:43 brave-sailor 阅读(259) 评论(0) 推荐(0)
摘要:尊重原创作者,转载请注明出处:http://blog.csdn.net/gemmem/article/details/7321910 Scroller这个类理解起来有一定的困难,刚开始接触Scroller类的程序员可能无法理解Scroller和View系统是怎么样联系起来的。我经过自己的学习和实践,对Scroller的用法和工作原理有了一定的理解,在这里和大家分享一下,希望大家多多指教。 首先从源码开始分析:View.java[java]view plaincopy/***CalledbyaparenttorequestthatachildupdateitsvaluesformScrollX* 阅读全文
posted @ 2013-10-29 08:59 brave-sailor 阅读(260) 评论(0) 推荐(0)
摘要:关于Activity生命周期的文章很多,而且大部分也说得很详细,所以作为关于这方面的内容我本来不想多说,但是大家可能跟我之前一样,在看这方面的内容的时候都能很容易地看懂,但是过几天又忘了,或者在用的程序中跳转较多的情况下容易混淆。这是因为没有真正的理解,或者是没有很好的方法来记忆,所以在这里我就说一下我对Activity生命周期的一些记忆的方式,希望对大家能够有所帮助。Activity生命周期的基本内容我就不多说了,网上一搜一大把,官方文档也说得很详细。总之,我们知道Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:onCreate 、on 阅读全文
posted @ 2013-10-28 09:55 brave-sailor 阅读(220) 评论(0) 推荐(0)
摘要:看图先: 页面中填充内容是随机关键词飞入和飞出动画效果,随后会更新,现在请先无视吧首先是 导入jar包 下载地址:android-support-v4.jar布局文件里添加viewPager布局[html] view plaincopyprint?再创建两个item布局用于填充在ViewPager里然后就是Activity了,主要写了左右滑动切换页面,还有一个小图片随页面切换 位移的动画效果[java] view plaincopyprint?publicclassSearchAllcityActivityextendsActivity{privateKeywordsFlowkeywo... 阅读全文
posted @ 2013-10-27 23:46 brave-sailor 阅读(570) 评论(0) 推荐(0)