- 浏览: 195406 次
- 性别:
- 来自: 北京
最新评论
-
沐子雨:
学习了~~
android评分条RatingBar自定义设置 -
yzsunlight:
多点触控实现缩放 您这个似乎不能实现
android实现图片平铺效果&WebView多点触控实现缩放 -
wouder:
[color=brown][/color]该多发发发发发发发发 ...
android评分条RatingBar自定义设置 -
somefuture:
生产的bitmap怎么用呢?怎么变成图片呢?
android生成二维码 -
colder_coder:
问一下,java规范中说一个对象的finalize方法只被调用 ...
关于system.gc()与finalize()方法
文章列表
JNI 是 Java Native Interface 的缩写,用以解决 Java 对本地方法的操作问题,而本地方法是以库文件的形式存放的(.dll for windows,.so for Unix)。
分享一些常见的jni方法:
GetStringUTFChars 将jstring转换成为UTF-8格式的char*GetStringChars 将jstring转换成为Unicode格式的char*ReleaseStringUTFChars 释放指向UTF-8格式的char*的指针ReleaseStringChars 释放指向Unicode格式的c ...
WebView中提供了public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl);方法可以用来加载String中存放的html代码。baseUrl为默认的html代码,data为要加载的html代码,mimeType为文本类型,encoding为编码格式,historyUrl为历史记录的html代码。废话不多说了,看了代码就都明白了
StringBuilder data = new StringBuilder(" ...
正常情况下跑马灯效果只需要在TextView中添加android:ellipsize="marquee" android:singleLine="true"
android:focusable="true"属性就可以了,不过这个方法要求指定的TextView必须要获取焦点,而在ListView中这个焦点的获取就变得疑惑了.
解决的方法按照惯例分三步:
1.作为子控件的TextView只添加android:ellipsize="marquee" android:singleLine="true" ...
做android程序开发的都知道,不能在一个拥有Scrollbar的组件中嵌入另一个拥有Scrollbar的组件,因为这不科学,会混淆滑动事件,导致只显示一到两行数据。那么就换一种思路,首先让子控件的内容全部显示出来,禁用了它的滚动。如果超过了父控件的范围则显示父控件的scrollbar滚动显示内容,思路是这样,一下是代码。
具体的方法是自定义GridView组件,继承自GridView。重载onMeasure方法:
public class MyGridView extends GridView
{
public MyGridView(android.content.Conte ...
Handler为android系统的线程通信工具,承担着主线程与分线程,分线程之间的通信功能,经常用到的有post(),sendMessage() 方法,前者是将一个线程加入线程队列,后者是发送一个消息到消息队列中,post方法还有两个变种,分别为定时发送postAtTime()和延时发送postDelayed()。
计时功能的实现主要利用了postDelayed()函数,即在run函数中以一秒为延时,不断调用自身,直到外部结束线程。代码如下:
public class HandlerDemoActivity extends Activity {
/** Called when ...
利用AsyncTask异步加载,实现平滑滑动加载网络图片,AsyncTask代码:
public class ImageLoadTask extends AsyncTask<Void, Void, Void> {
private int position;
private ImageView image;
// 初始化
public ImageLoadTask(Context context,int position,ImageView image) {
this.position = position;
this.image = image ...
将一段字符变成二维码,通过调用第三方包zxing来实现。没什么可说的,直接上代码:
public Bitmap Create2DCode(String str) throws WriterException {
//生成二维矩阵,编码时指定大小,不要生成了图片以后再进行缩放,这样会模糊导致识别失败
BitMatrix matrix = new MultiFormatWriter().encode(str,BarcodeFormat.QR_CODE, 400, 400);
int width = matrix.g ...
google在android2.3中新增了StrictMode API来设置对一个thread的策略(ui线程或者分线程),它主要检测了读写操作,访问网络,数据库读写等耗时的操作并将其以log或者dialog等形式打印出来。分析这些日志,我们可以尽快找出程序运行缓慢的原因进而优化代码,避免ANR(Application Not Responding)窗口的出现。
启用StrictMode 推荐的使用StrictMode的方式是,在开发阶段,打开它,在发布应用前,关闭它。 例如:在你的应用中,onCreate():
public void onCreate() {
if (DE ...
android提供了用来识别和保存手势操作的仓库与绘图区,GestureLibrary与GestureOverlayView,利用它们可以很简单的实现保存手势与识别手势。
加载文件中手势:
gestureLib = GestureLibraries.fromFile(path);//实例手势仓库
gestureLib.load()//加载手势集合
识别手势:
gestureOverlayView.addOnGesturePerformedListener(new GestureListener());//添加监听
private final class GestureListen ...
1.图片平铺效果实现非常简单,只要在xml中添加一个 android:tileMode的属性就可以了。首先在drawable文件夹中添加自己的my.xml文件。代码:
<?xml version ="1.0" encoding ="utf-8" ?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/pic_bg"
and ...
在ListView中的列表项中定义checkbox是一个常见手法,不过如果在listview使用了ViewHolder缓存的话就会遇到一个很恶心的问题,就是列表项错位的问题,为此我想到了一个自认为还算简单的解决方法,就是在自定义Adapter时加入checkbox.setTag(position)这样一句代码。这里checkbox为当前列表项的复选框,position为当前列表项位置。然后为checkbox设置点击事件,checkbox.setOnClickLinster(this)。最后在onClick(View v)方法中通过switch(v.get
Tag()){case 1: .... ...
就是大家喜闻乐见的图片去色,返回黑白的图片,具体的方法就是为bitmap添加colorFilter,废话不多说了,上代码:
public static Bitmap getGreyImage(Bitmap old) {
int width, height;
height = old.getHeight();
width = old.getWidth();
Bitmap new= Bitmap.createBitmap(width, height, Bitma ...
在android 1.6+的版本中增加了Viewpaper类,通过这个类我们可以很简单的实现左右滑动手指切换页面,Viewpaper需要设置PaperAdapter,在PaperAdapter中实现添加或删除View的功能,具体代码:
public class AwesomePagerActivity extends Activity {
private ViewPager awesomePager;
private Context cxt;
private AwesomePagerAdapter awesomeAdapter;
private Layou ...
最近补一下java基础知识,以下是我自己的一些理解,如果哪里有错误请务必指出,以免误引子弟,那兄弟我的罪过就大了 ╲( ^ o ^ )╱
java的内存回收机制是由jvm自动完成的,当jvm对内存进行回收时将调用finalize()函数。因此我们可以在其中增加一些方法来完成一些我们期待在内存回收时完成的任务。最常见的任务就是标记日志和复活对象:通过在finalize()中添加Log函数,我们可以跟踪jvm的内存回收;而在finalize()中将要回收的对象赋值给一个新的对象则实现了对象的复活。而在android中,finalize()函数又有一个重要的功能:当在android程序中 ...
public String md5(String s) {
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
// Create Hex String ...