08 2013 档案
摘要:下载fatJar插件,解压缩后是一个.../plugins/(net...)把plugins下面的(net..)文件夹拷贝到eclipse 的plugins下,重新启动Eclipse3.1,Windows=>prefernce=>fat jar preference看到他就说明已经安装成功了。如果没有看到,没有关系,删除D:/eclipse310/configuration /org.eclipse.update/platform.xml文件(此文件可以自动生成)不用担心以前的插件会因此而消失,没事。 刚开始找不到如何使用它,后来看到你的项目=〉Export..=>向导里有f
阅读全文
摘要:1.无外部包引用时用通常方法即可;2.有外部包引用时,最好使用 fat jar eclipse plug-in,可以自己去下,zip文件解压后,将net.sf.fjep.fatjar_0.0.25文件夹放入eclipse的plugins文件 夹中,然后将里面的fatjar .jar也放入plugins文件夹中,用命令行方式重启eclipse,用命令行打开eclipse.exe所在目录,然后输入eclipse -clean,打开后右击要到处的工程,会有Build Fat Jar一项,然后对话框中对use extern Jar-Name打勾可选择输出目录,之后选择main-class,然后在下面的
阅读全文
摘要:今天来实现以下大众点评客户端的横向listview二级列表,先看一下样式。 这种横向的listview二级列表在手机软件上还不太常见,但是使用过平板的都应该知道,在平板上市比较常见的。可能是因为平板屏幕比较大,而且也能展现更多的内容。 下面来看一下我的实现步骤。 首先自定义一个listview,代码如下:[mw_shl_code=java,true]public class MyListView extends ListView implements Runnable { private float mLastDownY = 0f; private int mDistance...
阅读全文
摘要:对于一般的软件开发人员来说,蓝牙是很少用到的,尤其是Android的蓝牙开发,国内的例子很少 Android对于蓝牙开发从2.0版本的sdk才开始支持,而且模拟器不支持,测试至少需要两部手机,所以制约了很多技术人员的开发,刚巧这段时间公司有蓝牙开发的需求,我看了很多国内、国外的资料,又研究了一下J2ME的蓝牙开发(为了找找思路),虽然我想要的功能还没实现(我曾经在很多论坛里问了很多遍,苦于没有高人解答..),我要实现的功能是连接一个硬件设备,凡是跟硬件沾上边的,都让软件人员开发头疼..好了,废话不说了,鉴于很多开发人员现在也有蓝牙开发的需求,也为了大家少走些弯路,先将我积攒的一点点在Andro
阅读全文
摘要:首先呢,我们还是看几个示图:(这是360推出的一款天气预报APP(墨迹),很不错的一款哦,这里为她们做一个免费广告,哈哈.)这种带有圆角的listview' 看起来很棒吧,确实是这样,其实也不能这么说,主要方形太多了,斯通见惯就不值钱了,“物以稀为贵嘛”. 就好比学java都搞androd,很明显嘛,为了多赚点钱,可是供过于求的话,就不这么乐观了,就好比现在这个圆角,如果太多太多的话,我想若干时间段,肯定会被新的视图所代替.所以“跟随潮流,放宽眼线”很重要.不扯了,(网上实现例子很多)下面简单介绍下实现方法:(两种方法)第一种:我们通过配置文件也就是shape自己实现圆角的背景,以及s
阅读全文
摘要:这一节,用个简单的例子来调用下之前生成的service.ane首先建一个flex手机项目然后在构建路径中把ane引进来可以看到此ane支持Android平台。serviceMobile.mxml如下: 最后一步,你需要在air -app.xml里配置上service的权限 16bit ...... ...
阅读全文
摘要:这一节,是要把AS库和Android的jar包及相关配置文件打成一个ane包。首先先建一个build目录,里面文件目录结构如下:然后用打开压缩包的方式打开ServiceLib.swc, 把其中的library.swf解压到 android 文件夹下, 把之前生成的jar包也放在这个文件夹下:(注意ServiceLib.swc 必须完整地放在根目录, 相当于复制了一份library.swf到android文件夹下)同理,把ServiceLibDefault.swf的library.swf 解压到default文件夹下。 然后把ServiceLib项目中的extension.xml拷过来。这时通过
阅读全文
摘要:jar包完成后,剩下就是要构建ANE包来供实际程序调用。首先要建两个Flex库项目, default那个是官方建议加上的,仅用于不在真实环境下编译调试的时候有个默认接口不至于调用不成功报错,项目结构如下:首先介绍配置文件extension.xml, 这个是必须的,用于指定平台和接口会直接打到ANE包里。 nav.wenbo.service0.0.1libAndroidServiceLib.jar nav.wenbo.service.ServiceExtension 这里我只配置了Andriod平台,配置的平台都必须在ANE包结构中有对应的目录,如需支持其它平台如iPhone,要加上...
阅读全文
摘要:着手改造之前,有兴趣可以阅读下官方文档:http://help.adobe.com/zh_CN/air/extensions/index.html新建工程 NavService 并创建包 nav.wenbo.service, 这些都可以自定义,但要记住你的包名。注意最下方那个jar包,这个是必需的,打开项目的构建目录(buildPath),引用外部jar包, 目录在你在Flex sdk目录下%FlexSDK%\4.x.x\lib\android\FlashRuntimeExtensions.jar我的本地目录是:F:\Program Files\Adobe\Adobe Flash Builde
阅读全文
摘要:项目组用air来开发手游, 但有些在原生应用里很容易实现的功能没有办法在air中直接调用,比如说震动,服务等等。但Adobe 提供了一种方法让air间接调用本地代码(java,object-c...),就是接下来要介绍的ANE(Adobe Native Extension) 也叫本地扩展。查了下资料,早在2011年11月 Adobe 官方就发一篇介绍ANE的文章附一个简单的例子, 在去年八月份Adobe 开发者中心 开始发一系列较为详尽的文章, 有兴趣可以阅读下:http://www.adobe.com/cn/devnet/air/articles/developing-native-exte
阅读全文
摘要:首先,简单介绍一下原理。主要是在手机客户端 (Android)通过实现Camera.PreviewCallback接口,在其onPreviewFrame重载函数里面获取摄像头当前图像数据, 然后通过Socket将图像数据和相关的用户名、命令等数据传输到服务器程序中。服务器端(PC端)采用C#编写,通过监听相应的端口,在获取数据后进行 相应的命令解析和图像数据还原,然后将图像数据传递至PictureBox控件中用于显示,这样就实现了手机摄像头的视频数据实时传输到服务器上。如果需 要将这些视频进行转发,通过服务器再将这些数据复制转发即可。效果如下: 对于Android客户端上主要有几个地方需要注.
阅读全文
摘要:一、获取本地外网IPpublic static String GetNetIp() { URL infoUrl = null; InputStream inStream = null; try { //http://iframe.ip138.com/ic.asp //infoUrl = new URL("http://city.ip138.com/city0.asp"); infoUrl = new URL("http://iframe.ip138.com/ic.asp"); URLConnection connecti...
阅读全文
摘要:Demo介绍:首页是一个GridView加载图片,竖屏时显示3列图片,横屏时显示4列图片;并且对图片进行大小限制和加灰色边框处理。点击某一张图片,会链接到Gallery页面,由于Android自带的Gallery控件滑动效果很不好(滑动一次会加载好多张图片),这里对Gallery进行了扩展,滑动一次只加载一张图片。Demo效果如下:1、首页Activity页面,GridViewActivity.java介绍:public class GridViewActivity extends Activity { private DisplayMetrics dm; private GridImag..
阅读全文
摘要:import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.content.Intent;//PDF,PPT,WORD,EXCEL,CHM,HTML,TEXT,AUDIO,VIDEO示例://这个不行,可能是因为PDF.apk程序没有权限访问其它APK里的asset资源文件,又或者是路径写错?//Intent it = getPdfFileIntent("file:///android_asset/helphelp.pdf");//下面这些都O
阅读全文
摘要:1.将项目打成jar: 1.1 要将项目打包成jar文件,方法很多,可以用Eclipse自带的打包工具Ant打包,也可以用Eclipse的Export生成jar。经过尝试后,我不推荐用Ant打包,因为要自己编写xml脚本语言,还要增加一些外部的jar,所以我打了好几次都没打成。 1.2 在这里介绍两种方法生成jar,第一种是用Eclpise的Export功能。在要打包的项目上击右键,选择Export,在窗口中选择Java里的 JAR file。Next后的窗口中已经自动选好了要打包的项目,用户可以点击加号查看项目里被打包的内容。在下面的JAR file里设置你打包生成jar文件的输出目录,下一
阅读全文
摘要:使用HttpClient连接服务端的步骤:1.创建HttpClient客户端对象HttpClient client = new DefaultHttpClient();2.创建请求对象 1.1 GET请求HttpUriRequest request = new HttpGet(String uri) HttpUriRequest request = new HttpGet(URI uri) 1.2 POST请求 1.2.1创建Post方法的请求对象 HttpUriRequest request = new HttpPost() HttpU...
阅读全文
摘要:本讲内容:URLConnection和HttpClient使用入门在 Android中除了使用WebView控件访问网络以外,还有用代码方式访问网络的方法,代码方式有时候会显得更加灵活。本讲会介绍使用 URLConnection对象和HttpClient组件访问网络的方法。而这两种方法和Java Web开发中的使用方式几乎没有区别,而Web开发的相关资料比比皆是,因此有兴趣的同学学完本讲之后可以专门去研究一下HttpClient4.0的内 容,以求更深入的学习。一、分别使用URLConnection和HttpClient访问Google天气服务的例子这个例子的的目的就是从Google哪里获取郑
阅读全文
摘要:1、进入项目目录,找到.project文件,打开。 2、找到...代码段。 3、在第2步的代码段中加入如下标签内容并保存: org.eclipse.wst.common.project.facet.core.nature org.eclipse.wst.common.modulecore.ModuleCoreNature org.eclipse.jem.workbench.JavaEMFNature4、项目目录下的.classpath文件,把所有Webroot字符串改为WebContent,保存。5、把目录下webroot的文件夹改名为WebContent。6、在eclipse中Java Re
阅读全文
摘要:eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法当使用eclipse导入外部的web工程时,有时会提示HttpServletRequest, ServletActionContext,ServletRequestAware,ServletResponseAware找不到的情况,解决办法:----------------------------------------------------------------------------------------------------选中项目-->properties-->Target
阅读全文
摘要:本讲内容:Android手机摄像头编程入门智能手机中的摄像头和普通手机中的摄像头最大的区别在于,智能机上的摄像头可以由程序员写程序控制, 做一些有趣的应用譬如,画中画,做一些有用的应用譬如二维码识别,等等。本讲打算通过一个实例,来介绍一下摄像头编程,相关解释都写在代码中了,请注意看 代码注释。 实例:窈窈照相机,功能很简单,就是点击程序弹出照相预览界面,点击相机按钮完成照相功能,所照相片会存储在手机存储卡根目录。 1、创建一个项目 Lesson36_Camera ,主程序文件为 MainActivity.java2、AndroidManifest.xml 中设置屏幕为横屏,并且声明摄像头和..
阅读全文
摘要:今天我们的教程是根据前面一节扩展进行的,如果你没有看,请点击 Android高手进阶教程(三)查看第三课,这样跟容易方便你的理解!在xml 文件里定义控件的属性,我们已经习惯了android:attrs="" ,那么我们能不能定义自己的属性能,比如:test:attrs="" 呢?答案是肯定的.好了我就不卖关子了,直接进入主题。大致以下步骤:一、 在res/values 文件下定义一个attrs.xml 文件.代码如下: 复制代码二、 我们在MyView.java 代码修改如下,其中下面的构造方法是重点,我们获取定义的属性我们R.sytleable.My
阅读全文
摘要:大家好我们今天的教程是在Android 教程中自定义View 的学习,对于初学着来说,他们习惯了Android 传统的页面布局方式,如下代码:复制代码当然上面的布局方式可以帮助我们完成简单应用的开发了,但是如果你想写一个复杂的应用,这样就有点牵强了,大家不信可以下源码都研究看看,高手写的布局方式,如上面的布局高手通常是这样写的: 复制代码其中A extends LinerLayout, B extends TextView.为了帮助大家更容易理解,我写了一个简单的Demo ,具体步骤如下:首先新建一个Android 工程 命名为ViewDemo .然后自定义一个View 类,命名为MyV...
阅读全文
摘要:在工作中又很多需求都不是android系统自带的控件可以达到效果的,内置的TabHost就是,只能达到简单的效果 ,所以这个时候就要自定义控件来达到效果:这个效果就是: 使用自定义RadioButton和ViewPager实现TabHost带滑动的页卡效果。 以下是实现步骤: 1、准备自定义RadioButton控件的样式图片等,就是准备配置文件: (1)、在项目的values文件夹里面创建 attrs.xml : (2)、创建 styles.xml: ...
阅读全文
摘要:文 件上传在B/S应用中是一种十分常见的功能,那么在Android平台下是否可以实现像B/S那样的文件上传功能呢?答案是肯定的。下面是一个模拟网站程 序上传文件的例子。这里只写出了Android部分的代码,服务器的代码没有贴出来,有需要完整上传功能代码的朋友可以跟我联系哟…首先新建一个Android工程,新建主启动Activity:MainActivity.java:package com.xzq.upload;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.InputStream;im
阅读全文
摘要:什么是Socket? 所谓Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信连的句柄,应用程序通常通过“套接字”向网络发送请求或者应答网络请求,它就是网络通信过程中端点的抽象表示。它主要包括以下两个协议: TCP (Transmission Control Protocol 传输控制协议):传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输 数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 UDP (User Datagram Protocl 用户...
阅读全文
摘要:本示例介绍在Android平台下通过HTTP协议实现断点续传下载。 我们编写的是Andorid的HTTP协议多线程断点下载应用程序。直接使用单线程下载HTTP文件对我们来说是一件非常简单的事。那么,多线程断点需要什么功能?难在哪里? 1.多线程下载, 2.支持断点。 使用多线程的好处:使用多线程下载会提升文件下载的速度。那么多线程下载文件的过程是: (1)首先获得下载文件的长度,然后设置本地文件的长度。 HttpURLConnection.getContentLength();//获取下载文件的长度 RandomAccessFile file ...
阅读全文
摘要:Java代码package com.android.cist.camera.view;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.util.HashMap;import java.util.Map;import android.app.Activity;import android.app.AlertDialog;import android.content.ContentResolver;import android.content.DialogInterface;import and
阅读全文
摘要:引用转载http://www.cnblogs.com/eyu8874521/archive/2012/07/20/2600697.html效果:客服端代码:[java]view plaincopyprint?packagecom.cn.lxz.zhaopian;importjava.io.File;...
阅读全文
摘要:Android没有像苹果开发那样功能强大的界面开发工具,本身 ADT插件提供的界面编辑能力有限,没办法刻画所有的界面情况;Android的界面xml代码可以进行人工修改,而Iphone的全部在图形界面上拖动 完成,可没提供任何方式的代码级修改。Android的UI设计开发过程非常繁琐,容易出错,需要很长时间调节界面细节,开发过Android应用的人肯 定深有同感。用几年前的网页设计来打个比方,开发Iphone的软件界面就好比是用Frontpage弄点控件拖成一张页面,而开发Android更接近 于闭着眼睛在Notepad里一行行的写html标签。为了使开发Android应用更加简便快捷,减少代
阅读全文
摘要:android.app包中含有一个ActivityGroup类,该类是Activity的容器,可以包含多个嵌套进来的 Activitys,这篇文章就是借助ActivityGroup可以嵌套Activity的功能来实现Tab功能。tab这种UI在很多的移动应用中可 以看到,包括android、iphone、window phone7等移动终端上都有这样的应用,Tab这种UI方式具有小视图大容量的特点。 首先,从SDK中doc文档中都可以获知,ActivityGroup类的父类是Activity(见下图),也就是说二者具有相同的接口和生命周期,同Activity一样,也有onCreate()、..
阅读全文
摘要:Fragment是Android3.0后增加的新控件,有点类似于Activity组件,也是用来承载各种View元素。Google增加这个 玩意的目的是为了平板电脑里面可以复用部分显示的View,只要写好一个View,可以同时在手机和平板等不同尺寸的设备上使用。而且这个转换过程系统帮 你搞定了。下面我们分类说说Fragment的使用。1、为何使用Fragment 下面是Android官网为了说明Fragment作用的例子:一个新闻应用可以在屏幕左侧使用一个fragment来展示一个文章的列表,然后在屏幕 右侧使用另一个fragment来展示一篇文章--2个fragment并排显示在相同的一个..
阅读全文
摘要:1:注意事项3.0以前的Android 版本要使用FragmentActivity 来装载Fragment ,使用到support v4包。3.0以后的版本可以直接在Activity里面添加Fragment。2:Fragment也有生命周期,继承Fragment 要重新onCreateView方法,另外onResume,onDestroyView 等方法根据需要填写。3:在activity中加入Fragment有两种方法:布局和代码动态加入。布局加入和在布局加入view,button等用法一样。4:在Activity中动态加入Fragment google 教程http://developer
阅读全文
摘要:首 先说下listview的优化方案,这也是面试中常考的题目。优化方案有三种:1,如果自定义适配器,那么在getView方法中判断 contentView是否为空,如果为空创建contentView并返回,如果不为空直接返回contentView。这样能尽可能少创建view。 2.给contentView设置tag,传入一个viewHoder对象,用于缓存要实现的数据。3,如果listview中显示的item太多,就要 考虑分页加载了。 下面就注意介绍一下分页加载数据。首先在layout下创建listview.xml: 然后创建listview_item.xml: 再为跟多...
阅读全文
摘要:首先我们还是看一些示例:(网易,新浪,百度) 显示效果都不错,可是手感就不一样了,百度最棒,网易还行,新浪就操作很不好,这里我说的是滑动切换图片.自己可以测试一下.不得不说牛叉的公司确实有哦牛叉的道理.下面我简单的介绍下实现方法:其实就是listview addHeaderView.只不过这个view是一个可以切换图片的view,至于这个view怎么做,就要根据自己的喜爱了,实现有多种方法,下面我简单介绍一下.第一种:ViewFlipper+GestureDetector主布局就是一个listview,这里就不介绍了,我介绍下切换图片布局head_iamge.xml 这里...
阅读全文
摘要:本文主要介绍如何利用ViewPager实现Gallery的画廊效果,即一屏显示多个Fragment。效果图如下: 在 使用Gallery的时候大家会发现有几个问题(1). 无法控制每次滑动只滑动一页, (2). Gallery默认第一个item居中,无法修改它与Gallery的左间距。ViewPager可以方便的解决上面两个问题,但默认却无法在屏幕上显示 多个Fragment。下面介绍如何利用ViewPager及android:clipChildren属性解决这个问题。1、定义xml 复制代码发现上面的RelativeLayout(可以用其它layout替换)和ViewPager的an...
阅读全文
摘要:相信大家对于微信等社交应用的UI界面已经都很熟悉了,该UI最值得借鉴的莫过于第一次使用的时候一些列产品介绍的图片,可以左右滑动浏览,最后 进入应用,这一效果适用于多种项目中,相信今后开发应用一定会用得到。网路上也有不少这样的例子可以参考,不过看别人的代码是一回事,自己实际做起来又是 另一回事,今天的这个微信的Demo是研究过多个类似的界面后自己动手去实现的效果,并且都加上了详细的注释(虽然有的多余),方便以后回顾一看就能看明 白,只有真正亲自写一写,体会才会更深刻,例子中的图片都是在微信的APK中提取出来的,涉及到的知识点无外乎是ViewPager和 Animation。 首先是开场闪屏的一个
阅读全文
摘要:ViewPager需要android-support-v4.jar这个包的支持,来自google提供的一个附加包。大家搜下即可。ViewPager主要用来组织一组数据,并且通过左右滑动的方式来展示。现在的大多数应用都会有一个欢迎引导页面,如图所示,通过左右滑动来告知用户一些功能特性。这个引导图效果用ViewPager可以很轻松的实现。正如前面所说,ViewPager是用来展示一组数据的,所以肯定需要Adapter来绑定数据和view。先写一个Adapter:package com.notice.viewpagerd;import java.util.List;import android.os
阅读全文
摘要:这是谷歌官方给我们提供的一个兼容低版本安卓设 备的软件包,里面包囊了只有在安卓3.0以上可以使用的api。而viewpager就是其中之一利用它,我们可以做很多事情,从最简单的导航,到页面菜 单等等。那如何使用它呢,与LisstView类似,我们也需要一个适配器,他就是PagerAdapter。看一下api的图片,ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样。分三个步骤来使用它: 1.在住布局文件里加入[mw_shl_code=java,true][/mw_shl_code]2.加载要显示的页卡, [mw_shl_code=java,true]LayoutInf
阅读全文
摘要:Fragment 的基础知识介绍 1.1 概述1.1.1 特性By hebang32624Fragment 是 activity 的界面中的一部分或一种行为。可以把多个 Fragment 组合到一个 activity 中来创建一 个多面界面并且可以在多个 activity 中重用一个 Fragment。可以把 Fragment 认为模块化的一段 activity,它具 有自己的生命周期,接收它自己的事件,并可以在 activity 运行时被添加或删除。Fragment 不能独立存在,它必须嵌入到 activity 中,而且 Fragment 的生命周期直接受所在的 activity 的影 响。
阅读全文
摘要:要管理fragment们,需使用FragmentManager,要获取它,需在activity中调用方法getFragmentManager()。你可以用FragmentManager来做以上事情:1使用方法findFragmentById()或findFragmentByTag(),获取activity中已存在的fragment们。2使用方法popBackStack()从activity的后退栈中弹出fragment们(这可以模拟后退键引发的动作)。3用方法addOnBackStackChangedListerner()注册一个侦听器以监视后退栈的变化。更多关于以上方法的信息,请参考“Fra
阅读全文
摘要:与activity通讯尽管fragment的实现是独立于activity的,可以被用于多个activity,但是每个activity所包含的是同一个fragment的不同的实例。Fragment可以调用getActivity()方法很容易的得到它所在的activity的对象,然后就可以查找activ...
阅读全文
摘要:通常,一个活动可能包含一个或多个协同工作的Fragment以向用户展现一致的UI。在这种情况下,Fragment之间就需要彼此通信并交换数据,这是非常重要的。例如,一个Fragment可能包含了一个条目列表(如来自一个RSS提要的帖子)。当用户轻点Fragment上的某个条目时,所选条目的详细信息可能会显示在另一个Fragment上。下面的“试一试”介绍了一个Fragment如何访问另一个Fragment中的视图。(1) 使用上一节创建的项目,向Fragment1.xml文件中添加如下所示的粗体代码:(2) 向fragment2.xml文件中添加如下所示的粗体代码:(3) 修改MainActi
阅读全文
摘要:与活动类似,Fragment也有自己的生命周期。理解Fragment的生命周期有助于在Fragment销毁时能恰当地保存其实例,然后在重新创建时能够将其恢复至之前的状态。下面的“试一试”将研究Fragment的各种状态。(1) 使用上一节创建的项目,向Fragment1.java文件中添加如下所示的粗体代码:package net.learn2develop.Fragments;import android.app.Activity;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutIn
阅读全文
摘要:本文主要介绍如何利用ViewPager、Fragment、PagerTabStrip实现多页面滑动效果。即google play首页、新浪微博消息(at、评论、私信、广播)页面的效果。ViewPager+Fragment组合为google推荐方式,比TabActivity+Activity的效率高的多1、添加android support包因为上面的几个类都是在android support包中才提供,我们先添加包。在Eclipse->Window->Android SDK Manager,选择列表中Extras->Android Support Library进行安装。下载
阅读全文
摘要:java.util.*;import java.text.*;import java.util.Calendar;public class VeDate {/** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */public static Date getNowDate() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString =
阅读全文
摘要:第一类:Frame By Frame 帧动画( 不推荐游戏开发中使用) 所谓帧动画,就是顺序播放事先做好的图像,类似于放电影; 分析: 此种方式类似我之前的那种利用设置可视区域的方式来实现动画效果,不仅类似而且还不如!所以此种方式在此不予分析;第二类:Tween Animation 渐变动画 即通过对对象不断做图像变换(平移、缩放、旋转)产生动画效果!实现方式其实就是预先定义一组指令,这些指令指定了图形变换的类型、触发时间、持续时间。这些指令可以是以 XML 文件方式定义,也可以是以源代码方式定义。程序沿着时间线执行这些指令就可以实现动画 效果。总结:那么在Android 游...
阅读全文
摘要:简 单介绍了SurfaceView的基本使用,这次就介绍SurfaceView与多线程的混搭。SurfaceView与多线程混搭,是为了防止动画闪烁 而实现的一种多线程应用。android的多线程用法与JAVA的多线程用法完全一样,本文不做多线程方面的介绍了。直接讲解SurfaceView与多 线程的混合使用,即开一条线程专门读取图片,另外一条线程专门绘图。 本文程序运行截图如下,左边是开单个线程读取并绘图,右边是开两个线程,一个专门读取图片,一个专门绘图: 对 比一下,右边动画的帧速明显比左边的快,左右两者都没使用Thread.sleep()。为什么要开两个线程一个读一个画,而不去开两个..
阅读全文
摘要:SurfaceView类是一个用于处理Surface的视图,也是Android Api提供的另一个类。什么是Surface呢?它是一个抽象的原始缓冲区,被屏幕组合器用于渲染特定视图。屏幕组合器是Android上所有渲染的幕后推手,并最终负责将所有的像素点推送到GPU。我们的目标就是在一个独立的线程中执行渲染,而不用大量占用UI线程,因为UI线程还有很多工作要做。SurfaceView类提供了一种在UI线程之外的线程中进行渲染的方式。SurfaceHolder和锁定为了在UI线程之外的另一个不同线程中渲染到SurfaceView,我们需要获得一个SurfaceHolder类的实例,如下所示:Su
阅读全文
摘要:首先我们先来看下官方API对SurfaceView的介绍SurfaceView的API介绍Provides a dedicated drawing surface embedded inside of a view hierarchy. You can control the format of this surface and, if you like, its size; the SurfaceView takes care of placing the surface at the correct location on the screenThe surface is Z ordere
阅读全文
摘要:[color=#ff0000][size=18px]透明//Transparent半透明//Translucent[/size][/color]package rw.Trans;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.PixelFormat;import android.o
阅读全文
摘要:一、SurfaceSurface 就是“表面”的意思。在SDK的文档中,对Surface的描述是这样的:“Handle onto a raw buffer that is being managed by the screen compositor”,翻译成中文就是“由屏幕显示内容合成器(screen compositor)所管理的原生缓冲器的句柄”,这句话包括下面两个意思:1. 通过Surface(因为Surface是句柄)就可以获得原生缓冲器以及其中的内容。就像在C语言中,可以通过一个文件的句柄,就可以获得文件的内容一样;2. 原生缓冲器(rawbuffer)是用于保存当前窗口的像素数..
阅读全文
摘要:今天学习不在布局文件中写布局而将布局文件写入到程序的Activity中去,在布局文件中去布局,当我利用LayoutInflactor新建了 CheckedTextView控件以后,然后将CheckedTextView添加入ListView中,然后使用CheckedTextView使用 setChecked将CheckedTextView设置成true或者设置成false的时候,发现无法改变CheckedTextView的选中的 状态,不能使用CheckedTextView自己带的方法去修改自身的选中状态。(CheckBox有同样的问题)。 其中Activity中添加ListView的方法代码如
阅读全文
摘要:需求:单击返回键两次退出,单击一次返回键Toast提示,在其后2s内再单击一次返回键就退出。 private static Boolean isExit = false; private static Boolean hasTask = false; Timer tExit = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { isExit = false; hasTask = true; } }; @Override public boolean onKeyDown(int keyCod
阅读全文