- 浏览: 22786 次
- 性别:
- 来自: 广州
最新评论
-
wowo365:
写的很详细,正好在看listView 这块,谢谢
ListView分页加载数据
文章列表
android多线程下载详解
- 博客分类:
- android
本文将介绍在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的使用
- 博客分类:
- android
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 ...
Android杂谈---读取XML资源
- 博客分类:
- android
获取XML文件的基本思路是,通过getResources().getXml()获的XML原始文件,得到XmlResourceParser对象,通过该对象来判断是文档的开头还是结尾,是某个标签的开始还是结尾,并通过一些获取属性的方法来遍历XML文件,从而访问XML文件的内 ...
Java版A星算法实现步骤
- 博客分类:
- java
A星算法步骤:
1.起点先添加到开启列表中。
2.开启列表中有节点的话,取出第一个节点,即最小F值的节点,
判断此节点是否是目标点,是则找到了,跳出,
根据此节点取得八个方向的节点,求出G,H,F值,
判断每个节点在地图中是否能通过,不能通过则加入关闭列表中,跳出判断每个节点是否在关闭列表中,在则跳出,
判断每个节点是否在开启列表中,在则更新G值,F值,还更新其父节点;不在则将其添加到开启列表中,计算G值,H值,F值,添加其节点。
3.把此节点从开启列表中删除,再添加到关闭列表中。
4.把开启列表中按照F值最小的节点进行排序,最小的F值在第一个。
5.重复2,3,4步骤,
直 ...
android网络传输的传送对象
- 博客分类:
- android
此方法将对象写入对象流,然后转换成string,故适用于http和soap协议或者其他的网络传输。注意:对象须实现Serializable接口,定义的serialVersionUID相同,列表传送也需实现Serializable接口,hashtable可以。服务器端写对象
try {
Hashtable<Integer, User>hashtable=new Hashtable<Integer, User>();
ByteArrayOutputStream baos=new ByteArrayOutputStream();
...
教你如何开关Android的APN网络
- 博客分类:
- android
由于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分页加载数据
- 博客分类:
- android
对于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 ...