`
whoyuhui
  • 浏览: 22786 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
本文将介绍在android平台下如何实现多线程下载,大家都知道,android平台使用java做为开发语言,所以java中支持的多线程下载方式在android平台下都支持,其中主要有两种方式可以实现多线程下载。 一种方式是使用很多个线程分别下载文件的不同部分,最后把所有下载完的文件合并成一个文件。另一种方式是使用java为我们提供的RandomAccessFile类实现多线程的下载。 从性能上分析,第二种方式的存取速度会慢一些,但开发起来较为容易,不需要进行合并文件等操作。本文将使用第二种方式来实现多线程下载,最终效果如下图所示:       第一步,我们先写一个 ...
效果图如下:           package lab.sodino.reflection; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.LinearGradient; import android.graphi ...
最近在开发一个小游戏中,用到一个显示当前进度的进度条,如下图所示   由于中间黄色部分是进度条区域,带有一定的弧度而不是规则的长方形。刚开始想偷懒用了很多办法来实现效果都不理想。后来想到使用遮罩层可以非常方便的实现这个功能。 可以通过修改Paint的Xfermode来实现遮罩的效果。Xfermode的功能非常强大,在API DEMO的Graphics中的最后一项有demo。看一下怎么实现我们的这个进度条吧。     首先用图片处理软件制作一个和中间黄色区域相同的图形,我们将在代码中设置它做为遮罩。    
不了解Matrix的同学看这里:         弄明白matrix那几个方法的使用了,比如preTranslate, setTranslate, postTranslate这些。以前对它们都是一知半解,以为这几个方法没什么区别,其实还是有很大不同的,最紧要是这几个方法的调用顺序对坐标变换的影响。抽象的说pre方法是向前"生长", post方法是向后"生长",具体拿个例子来说,比如一个matrix调用了下列一系列的方法:     matrix.preScale(0.5f, 1);     matrix.preTranslate(10, 0);     ...
1、这里我们重点懂得ImageView的属性android:scaleType,即ImageView.setScaleType(ImageView.ScaleType)。android:scaleType是把握图片如何resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义差别: 2  3 CENTER /center  按图片的本来size居中显示,当图片长/宽跨越View的长/宽,则截取图片的居中项目组显示 4  5 CENTER_CROP / centerCrop  按比例扩大图片的si ...
Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结:先看下面的代码: 复制到剪贴板  XML/HTML代码 <shape>       <!-- 实心 -->       <solid android:color="#ff9d77"
android xml 的解析. 1.普通型 <?xml version=”1.0″ ?> <statuses> <status> <source1>a</source1> <source2>a</source2> <source2>a</source2> </status> <statuses> </xml>   解析代码 try{ xpp.setInput( new StringReader ( “xml st ...
获取XML文件的基本思路是,通过getResources().getXml()获的XML原始文件,得到XmlResourceParser对象,通过该对象来判断是文档的开头还是结尾,是某个标签的开始还是结尾,并通过一些获取属性的方法来遍历XML文件,从而访问XML文件的内 ...
A星算法步骤: 1.起点先添加到开启列表中。 2.开启列表中有节点的话,取出第一个节点,即最小F值的节点, 判断此节点是否是目标点,是则找到了,跳出, 根据此节点取得八个方向的节点,求出G,H,F值, 判断每个节点在地图中是否能通过,不能通过则加入关闭列表中,跳出判断每个节点是否在关闭列表中,在则跳出, 判断每个节点是否在开启列表中,在则更新G值,F值,还更新其父节点;不在则将其添加到开启列表中,计算G值,H值,F值,添加其节点。 3.把此节点从开启列表中删除,再添加到关闭列表中。 4.把开启列表中按照F值最小的节点进行排序,最小的F值在第一个。 5.重复2,3,4步骤, 直 ...
此方法将对象写入对象流,然后转换成string,故适用于http和soap协议或者其他的网络传输。注意:对象须实现Serializable接口,定义的serialVersionUID相同,列表传送也需实现Serializable接口,hashtable可以。服务器端写对象 try { Hashtable<Integer, User>hashtable=new Hashtable<Integer, User>(); ByteArrayOutputStream baos=new ByteArrayOutputStream(); ...
由于Android对于APN的网络API没有公开,不过我们可以阅读源代码,然后进行数据库操作,系统会自动监听数据库的变化,从而实现开启或者关闭APN。   大家可以研究一下frameworks/base/core/java/android/provider/Telephony.java这个类, 比较重要的就是 URI 和数据库字段: content://telephony/carriers 字段可以在Telephony.java中找到。     其实原理很简单 :  1 、 当开启APN的时候,设置一个正确的移动或者联通的APN 2、 关闭的时候设置一个错误APN就会自动关 ...
Android是个公认的好系统,但有一点对于中国用户(尤其是中国移动的wap包月用户)是十分遗憾的,那就是它对cmwap支持的不好。就拿我的HTC G2来说吧,cmwap基本上是不能用的,可惜了10元的包月费。 当然自写的程序也是一样, ...
在Android开发中,经常会用到连接网络的操作,比如下载指定位置的网络图片,根据用户网络连接APN设置不同,我们在编程的时候要进行判断,做到网络的兼容,即无论用户选择的是CMNET还是CMWAP抑或是3G上网,我们的软件都要达到正常运行的程度。 要做到这一点,首先要判断用户当前使用的接入点类型,以下方法可以获取Android系统的手机当前使用的接入点类型。 先声明一个枚举,区分接入点 /** 接入点类型*/   public enum APNType { CMWAP, CMNET, Unknow }   然后通过下面的函数获取接入点类型 ...
对于ListView分页加载数据,是正常情况下是非常有必要。一般对于少量的数据一次性把全部数据加载到ListView中显示,对于数据量多比较大,特别在资源有限的手机设备中更有重要,由用户去点击加载想要数据更为合适。在一些博客上看到关于ListView分页加载,但不太全面,实用性不高,因此我模拟正常情况下ListView分页加载,对于有方面帮助的朋友肯定有用,由于本人技术有限,可能存在些问题,欢迎指正,谢谢!   1.  先看效果吧,         2. java代码:MainActivity.java /** * ListView分页加载数据 * @author ...
ListView 实现像Android Market那样 分页加载 滚动加载 收藏最近几天研究ListView实现分页加载和滚动加载,发现可以用listView的OnScroll方法来实现,直接上代码 1.ListViewScroll.java package zy.lucifer.ListViewScroll; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Gravity; import andr ...
Global site tag (gtag.js) - Google Analytics