02 2014 档案

摘要:publicclassMainActivityextendsActivity{privateButtondefaultbutton=null;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);finalLinearLayoutlayout=(LinearLayout)findViewById(R.id.layout);//默认皮肤defaultbutton=(Button)findViewById(R.id. 阅读全文
posted @ 2014-02-28 14:05 brave-sailor 阅读(300) 评论(0) 推荐(0) 编辑
摘要:现在很多APP都有换肤的功能,例如微博,QQ等应用。这些应用的换肤原理是什么?在用微博的时候,不难发现,当你要换肤时,先下载并安装一个皮肤apk,然后选择这个皮肤,就可以了。这种方式就是把皮肤打包成一个APK,然后在主程序中访问这个皮肤APK中的资源。这种方式需要涉及到两个应用之间的数据访问了。那如何做到应用间的数据访问呢?这就得用到Android shareUserId这个属性了。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默认就是可以互相访问任意数据.假设有一个应用叫main,一个皮肤APK叫skin,那么在main应用以及ski 阅读全文
posted @ 2014-02-28 13:10 brave-sailor 阅读(839) 评论(0) 推荐(0) 编辑
摘要:package com.myjava;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;public class MyCalendar { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { System.out.println(MyCalendar.getMonthSpace("1982 阅读全文
posted @ 2014-02-27 14:56 brave-sailor 阅读(4051) 评论(0) 推荐(0) 编辑
摘要:本文演示在Android平台中绘制和展示图表示例,本示例是基于RChart 2实现的。在一个系统中经常要用到图表统计数据,在WEB开发中图表绘制是一件简单的事情,因为有比较多的开源方案。但在Android中开源方案并不多。Android中绘制图表解决方案:1) 使用google 图表 api 2) 使用Achartengine库(http://www.achartengine.org/) 3) 使用chartdroid库(http://code.google.com/p/chartdroid/)4) 使用RChart 2库实现。第一种解决方案是使用google的图表API。可以到如下这... 阅读全文
posted @ 2014-02-26 11:09 brave-sailor 阅读(312) 评论(0) 推荐(0) 编辑
摘要:1.简介 AChartEngine(简称ACE)是Google的一个开源图表库(for Android)。它功能强大,支持散点图、折线 。关于里面类的具体使用,请下载响应的文档说明(主页上有)。2.开发步骤1)在工程中新建一个文件夹比如lib,用于存放ACE Libraries,把achartegine-0.5.0.jar包复制到lib里面。然后把这个jar的路径添加到项目的Build Path中。2)修改AndroidManifest.xml 主要是加入一个: 3)绘制柱状图public class main extends ListActivity { private stati... 阅读全文
posted @ 2014-02-26 11:08 brave-sailor 阅读(335) 评论(0) 推荐(0) 编辑
摘要:ViewPager需要android-support-v4.jar这个包的支持,来自google提供的一个附加包。大家搜下即可。ViewPager主要用来组织一组数据,并且通过左右滑动的方式来展示。现在的大多数应用都会有一个欢迎引导页面,如图所示,通过左右滑动来告知用户一些功能特性。这个引导图效果用ViewPager可以很轻松的实现。正如前面所说,ViewPager是用来展示一组数据的,所以肯定需要Adapter来绑定数据和view。先写一个Adapter:[java] view plaincopypackagecom.notice.viewpagerd;importjava.util.Lis 阅读全文
posted @ 2014-02-25 14:04 brave-sailor 阅读(188) 评论(0) 推荐(0) 编辑
摘要:上篇博文和大家分享了下拉刷新,这是一个用户体验非常好的操作方式。新浪微薄就是使用这种方式的典型。还有个问题,当用户从网络上读取微薄的时候,如果一 下子全部加载用户未读的微薄这将耗费比较长的时间,造成不好的用户体验,同时一屏的内容也不足以显示如此多的内容。这时候,我们就需要用到另一个功能,那 就是listview的分页了。通过分页分次加载数据,用户看多少就去加载多少。通常这也分为两种方式,一种是设置一个按钮,用户点击即加载。另一种是当用户滑动到底部时自动加载。今天我就和大家分享一下这个功能的实现。首先,写一个xml文件,moredata.xml,该文件即定义了放在listview底部的视图:[h 阅读全文
posted @ 2014-02-25 14:03 brave-sailor 阅读(185) 评论(0) 推荐(0) 编辑
摘要:关于listview的操作五花八门,有下拉刷新,分级显示,分页列表,逐页加载等,以后会陆续和大家分享这些技术,今天讲下下拉加载这个功能的实现。最初的下拉加载应该是ios上的效果,现在很多应用如新浪微博等都加入了这个操作。即下拉listview刷新列表,这无疑是一个非常友好的操作。今天就和大家分享下这个操作的实现。先看下运行效果: 代码参考国外朋友Johan Nilsson的实现,http://johannilsson.com/2011/03/13/android-pull-to-refresh-update.html。主要原理为监听触摸和滑动操作,在listview头部加载一个视图。那要做的. 阅读全文
posted @ 2014-02-25 14:02 brave-sailor 阅读(245) 评论(0) 推荐(0) 编辑
摘要:今天继续和大家分享涉及到listview的内容。在很多时候,我们会用到listview和checkbox配合来提供给用户一些选择操作。比如在一个 清单页面,我们需要记录用户勾选了哪些条目。这个的实现并不太难,但是有很多朋友来问我如何实现,他们有遇到各种各样的问题,这里就一并写出来和大家一起 分享。ListView的操作就一定会涉及到item和Adapter,我们还是先来实现这部分内容。首先,写个item的xml布局,里面放置一个TextView和一个CheckBox。要注意的时候,这里我设置了CheckBox没有焦点,这样的话,无法单独点击checkbox,而是在点击listview的条目后, 阅读全文
posted @ 2014-02-25 14:00 brave-sailor 阅读(189) 评论(0) 推荐(0) 编辑
摘要:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样系统不会显示ANR给用户。默认情况下,在android中Activity的最长执行时间是5秒,BroadcastReceiver的最长执行时间则是10秒。 阅读全文
posted @ 2014-02-24 08:47 brave-sailor 阅读(211) 评论(0) 推荐(0) 编辑
摘要:在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。Android总Activity的启动模式分为四种:Activity启动模式设置:Activity的四种启动模式: 1.standard 模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。 2.singleTop 如果在任务的栈顶正好存在该Activity的实例,就重用该实例,并且会调用实例的OnNewIntent()方法,否者就会创建新的实例并放入栈顶(即使栈中已经存在 阅读全文
posted @ 2014-02-18 17:11 brave-sailor 阅读(464) 评论(0) 推荐(0) 编辑
摘要:由于在自己做的东西中用到了就总结一下,自己做了测试 在一个程序运行中如果按 返回键 分别执行了 : onpause() onStop() onDestory()方法 如果点击 home键 则执行了 onPause() onStop()方法 ,呵呵这个方法的介绍可以在以后写程序中在不同的方法中执行不同的方法下边是实现两个按钮了1.实现home键 [java]Intentintent=newIntent(Intent.ACTION_MAIN);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//注意,这个地方最重要,关于解释,自己googl... 阅读全文
posted @ 2014-02-18 17:01 brave-sailor 阅读(1926) 评论(0) 推荐(0) 编辑
摘要:上网学了好多方法,关于Android的Activity如何退出。好多方法都不行啦,试了各种方法,下面这种方法就是我最喜欢的,简单又容易懂。使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(具体实现自己处理,使用LinkedList等)专门负责存储新开启的每一个Activity,并且容易理解、易于操作,非常不错!MyApplication类(储存每一个Activity,并实现关闭所有Activity的操作Java代码 publicclassMyApplicationextendsApplication{privateListactivityList=newLink 阅读全文
posted @ 2014-02-18 16:18 brave-sailor 阅读(304) 评论(0) 推荐(0) 编辑
摘要:1.适用场景1) ContentProvider为存储和读取数据提供了统一的接口2) 使用ContentProvider,应用程序可以实现数据共享3) android内置的许多数据都是使用ContentProvider形式,供开发者调用的(如视频,音频,图片,通讯录等)2.相关概念介绍1)ContentProvider简介 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpref... 阅读全文
posted @ 2014-02-18 11:00 brave-sailor 阅读(171) 评论(0) 推荐(0) 编辑
摘要:import java.io.*;public class BufferOutputDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub byte buf[]=new byte[255]; System.out.println("请输入要创建文件名(用/分格):"); try { System.in.read(buf,0,255);//read()方法会抛出异常 String FileName=new String(buf 阅读全文
posted @ 2014-02-14 16:11 brave-sailor 阅读(432) 评论(0) 推荐(0) 编辑
摘要:ExpandableListView默认标示箭头是在左边的,当左边有图片时,不是太好看,想把它放在右边,这么简单的事可我折腾死了,还好给我找到了。参照了以下链接:expandableListview的默认箭头箭头怎样移到右边 提供的方案是隐藏箭头,完全自己实现Android中替换ExpandableListView控件前面的箭头图标 讲了怎么换图片,没说怎么换位置How to show the expandable list icon on right side? 知道可以使用setIndicatorBounds方法,可是list.getWidth()为0Expandable list vie 阅读全文
posted @ 2014-02-13 15:12 brave-sailor 阅读(1057) 评论(0) 推荐(0) 编辑
摘要:1、第一种,通过迭代的方式 File[] listFiles = file.listFiles(); for (Iterator iterator = files.iterator(); iterator .hasNext();) { File file = (File) iterator.next(); } 2、增强for循环 File[] listFiles = file.listFiles(); for (File file2 : listFiles) { } 3、普通循环 File[] listFiles = file.listFiles(); for (int ... 阅读全文
posted @ 2014-02-12 23:34 brave-sailor 阅读(597) 评论(0) 推荐(0) 编辑
摘要:现在的手机的功能可谓是五花八门,手机照相功能就是特别突出的一点,现在的手机照相机甚至成了专业数码照相机,可以拍摄出清晰的照片和录制高分辨率的视频。Android操作系统呢,提供了相应的功能来控制拍照:通过Camera进行拍照1.调用Camera的open()方法打开相机。2.调用Camera的setParameters()方法获取拍照参数。该方法返回一个Camera.Parameters对象。3.调用Camera.Paramers对象方法设置拍照参数4.调用Camera的startPreview()方法开始预览取景,在预览取景之前需要调用Camera的setPreViewDisplay(Sur 阅读全文
posted @ 2014-02-12 23:14 brave-sailor 阅读(434) 评论(0) 推荐(0) 编辑
摘要:在 写相机相关应用的时候遇到捕获的画面方向和手机的方向不一致的问题,比如手机是竖着拿的,但是画面是横的,这是由于摄像头默认捕获的画面byte[]是根 据横向来的,而你的应用是竖向的,解决办法是调用setDisplayOrientation来设置PreviewDisplay的方向,效果就是将捕获 的画面旋转多少度显示。设置 preview 的顺时针旋转角度。这将影响 preview frames和拍照之后的相片显示。该方法主要用于垂直模式的应用。注意在旋转之前, front-facing cameras 的 preview显示是水平 flip 的,这就是说, image 是沿着 camera s 阅读全文
posted @ 2014-02-12 22:56 brave-sailor 阅读(2294) 评论(0) 推荐(0) 编辑
摘要:在android中应用相机功能,一般有两种:一种是直接调用系统相机,一种自己写的相机。 我将分别演示两种方式的使用: 第一种:是使用Intent跳转到系统相机,action为:android.media.action.STILL_IMAGE_CAMERAIntent intent = new Intent(); //调用照相机intent.setAction("android.media.action.STILL_IMAGE_CAMERA");startActivity(intent);import android.app.Activity;import android.c 阅读全文
posted @ 2014-02-12 22:36 brave-sailor 阅读(402) 评论(0) 推荐(0) 编辑
摘要:Translated From Google Android.class PhotoDecodeRunnable implements Runnable {... /* * Defines the code to run for this task. */ @Override public void run() { // Moves the current Thread into the background android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND); ... /* * 阅读全文
posted @ 2014-02-12 17:58 brave-sailor 阅读(287) 评论(0) 推荐(0) 编辑
摘要:录像Android提供了2种方案去录像。方案一:最简单的方式就是使用Intents去启动App来帮助你完成。这个方案使你能够指定输出的位置和视频的质量。这方案通常是最好的方法,应该可以用在多种情形下。MediaStore.EXTRA_OUTPUT 指定输出的位置。MediaStore.EXTRA_VIDEO_QUALITY 0-1之间, 1 质量最高,默认的话是1.MediaStore.EXTRA_DURATION_LIMIT 指定最大的录像长度。(秒单位)01private static final int RECORD_VIDEO = 0;0203private void startRec 阅读全文
posted @ 2014-02-12 17:57 brave-sailor 阅读(2962) 评论(0) 推荐(0) 编辑
摘要:管理音频焦点情景:当你的app隐退到后台,而其他也有播放能力的app浮现在前台,这个时候,你可能要暂停你原有app的播放功能,和解除监听Media Button,把控制权交给前台的APP。这就需要监听音频的焦点。在开始播放之前,请求焦点,使用AudioManager的requestAudioFocus方法。当你请求音频焦点,你可以指定你要监听的流类型(比如STREAM_MUSIC)和指定你要占有焦点多久。当然从编程的角度来看,app获取焦点,其它app失去焦点,你应该都需要有所反应。示例:请求音频焦点01AudioManager am = (AudioManager)getSystemServ 阅读全文
posted @ 2014-02-12 17:56 brave-sailor 阅读(576) 评论(0) 推荐(0) 编辑
摘要:Android 4.0.3(Api Level 15)支持的多媒体格式。注意:有些设备可能支持其他的文件格式。1.AudioAAC LC/LTP、HE-AACv1(AAC+)、AMR-NB、AMR-WB、MP3、MIDI、Ogg Vorbis、PCM/WAVE、FLAC(3.1或3.1以上)2.ImageJPEG、PNG、WEBP、GIF、BMP3.VideoH.263、H.264 AVC、MPEG-4 SP、VP8(2.3.3或2.3.3以上)播放音频、视频主要由MediaPlayer类来控制。 大致步骤: 1.初始化MediaPlayer,附上要播放的媒体。 2.准备播放 prepar.. 阅读全文
posted @ 2014-02-12 17:55 brave-sailor 阅读(500) 评论(0) 推荐(0) 编辑
摘要:方法1:按固定比例进行缩放在开发图片浏览器等 软件是,很多时候要显示图片的缩略图,而一般情况下,我们要将图片按照固定大小取缩略图,一般取缩略图的方法是使用BitmapFactory的 decodeFile方法,然后通过传递进去 BitmapFactory.Option类型的参数进行取缩略图,在Option中,属性值inSampleSize表示缩略图大小为原始图片大小的几 分之一,即如果这个值为2,则取出的缩略图的宽和高都是原始图片的1/2,图片大小就为原始大小的1/4。然而,如果我们想取固定大小的缩略图就比较困难了,比如,我们想将不同大小的图片去出来的缩略图高度都为200px,而且要保证图片不 阅读全文
posted @ 2014-02-12 17:46 brave-sailor 阅读(481) 评论(0) 推荐(0) 编辑
摘要:怎样获取图片的大小?首先我们把这个图片转成Bitmap,然后再利用Bitmap的getWidth()和getHeight()方法就可以取到图片的宽高了。新问题又来了,在通过BitmapFactory.decodeFile(String path)方法将图片转成Bitmap时,遇到大一些的图片,我们经... 阅读全文
posted @ 2014-02-12 17:27 brave-sailor 阅读(381) 评论(1) 推荐(0) 编辑
摘要:有时候我们需要把A activity提交数据给B activity处理,然后把结果返回给A这种方式在很多种情况需要用到,比如我应用的程序需要有拍照上传的功能。一种解决方案是 我的应用程序〉调用系统相机〉拍照〉关闭系统相机〉返回拍照后的照片到我的应用程序启动一个ForResult的意图:Intent intent = new Intent(MainAcitvity.this,RequestActivity.class);//发送意图标示为REQUSET=1startActivityForResult(intent, REQUSET);B Activity处理数据:Intent intent=ne 阅读全文
posted @ 2014-02-12 14:34 brave-sailor 阅读(273) 评论(0) 推荐(0) 编辑
摘要:项目需要中需要更换progressbar的旋转背景,在网上找了几种办法,但是都有各自的问题于是结合网上所讲,研究了一下终于ok了:一 首相在drawable文件夹中建立如下旋转动画文件 其中loading1即为您想用的图片二 在布局文件中设置progressbarok ,万事大吉 阅读全文
posted @ 2014-02-11 22:41 brave-sailor 阅读(3108) 评论(0) 推荐(0) 编辑
摘要:Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。Android利用Handler来实现UI线程的更新的。Handler是Android中的消息发送器,其在哪个Activity中创建就属于且紧紧属于该Activity。还可以说其在哪个线程中new的,就是那个线程的Handler。Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI.解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上 阅读全文
posted @ 2014-02-11 11:55 brave-sailor 阅读(355) 评论(0) 推荐(0) 编辑
摘要:1. 概述在引入范型之前,Java类型分为原始类型、复杂类型,其中复杂类型分为数组和类。引入范型后,一个复杂类型就可以在细分成更多的类型。例如原先的类型List,现在在细分成List, List等更多的类型。注意,现在List, List是两种不同的类型,他们之间没有继承关系,即使String继承了Object。下面的代码是非法的 List ls = new ArrayList(); List lo = ls;这样设计的原因在于,根据lo的声明,编译器允许你向lo中添加任意对象(例如Integer),但是此对象是List,破坏了数据类型的完整性。在引入范型之前,要在类中的方法支持多个数据类型, 阅读全文
posted @ 2014-02-11 11:15 brave-sailor 阅读(356) 评论(0) 推荐(0) 编辑
摘要:越来越多的手机具备自动对焦的拍摄功能,这也意味着这些手机可以具备条码扫描的功能.......手机具备条码扫描的功能,可以优化购物流程,快速存储电子名片(二维码)等。 本文使用ZXing 1.6实现条码/二维码识别。ZXing是个很经典的条码/二维码识别的开源类库,long long ago,就有开发者在J2ME上使用ZXing了,不过要支持JSR-234规范(自动对焦)的手机才能发挥其威力,而目前已经有不少Android手机具备自动对焦的功能。本文代码运行的结果如下,使用91手机助手截图时,无法截取SurfaceView的实时图像:本文使用了ZXing1.6的core,即把/zxing-1.6 阅读全文
posted @ 2014-02-09 21:50 brave-sailor 阅读(566) 评论(0) 推荐(0) 编辑
摘要:Tasks and Back Stack 一个应用通常包括多个 activity。每个 activity应用设计为围绕针对执行用户特定的行为和可以启动其它 activity。一个 Activity也可以启动别个应用的 Activity。当别的应用完成,你的应用会重新激活 ,来自别个应用的 activity看起来像是自己的应用中的一样。尽管这些 Activity处于不同的应用, Android将这些 activity维护到同一个 task中给用户这种无缝的应用体验。一个 task是用户执行一个特定的工作与用户交互的一组特定的 Activity的集合。 Activity被安排到同一个栈 (back 阅读全文
posted @ 2014-02-09 13:05 brave-sailor 阅读(444) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示