嗨,新朋友,很高兴认识你,欢迎来到我的博客。
推荐使用Chrome浏览器浏览本站。Android版猜数字游戏,完美支持HTC Hero,兼容Nexus S,下载地址

Google2011博客大赛的双肩包

好吧,Google,这图案真够…

Android笔记五

Android中关于分享的实现我一直都没找到!今天总算被我撞见了,记录一下:


==================================================

Android 使用MMS彩信或者Gmail发送图片

Intent i = new Intent(Intent.ACTION_SEND);
i.putExtra(Intent.EXTRA_STREAM,imageUri);//这里必须是图片的uri
i.setType("image/jpeg");
startActivity(Intent.createChooser(i,TITLE_TIP));//TITLE_TIP是弹出的选择程序处理的文字标题

==================================================
Android 使用短信或者Gmail发送文字

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT,SOMETHING_TITLE)//Gmail的邮件主题,可选
intent.putExtra(Intent.EXTRA_TEXT,SOMETHING_TEXT_BODY);//文本内容
startActivity(Intent.createChooser(intent,TITLE_TIP);//弹出的选择程序处理的文字标题

这样所有intent-filter的action设置为android.intent.action.SEND的Activity都将作为被选择程序出现在列表中。

Google暑期大学生博客分享大赛(2011)

二等奖没拿到,就弄了个优秀奖。好吧,拿个双肩背包也不错~

Android笔记四

交通违章查询软件写完之后,不可避免的遇到了一些bug,而且在功能上也迫切需要改善,比如增加后台自动查询功能,有违章发出提醒;比如增加手势放大查看违章图片功能,增加保存图片功能等等。在这个过程中,发现先前写的软件要想增加这样那样的功能简直比登天还难,各种函数之间高耦合,就像一块根本咬不动的大烧饼,牵一发而动全身。所以不可避免的,我重构了这款软件,已适应功能上的变化。

现在已经全部改良完毕,在这里记录一些我在这个过程中的经历。

wordpress下的代码插件

终于找到wordpress下的代码插件了,之前在cnblog上看到觉得很好,找了好半天都没找到,今天被我无意中发现了,也许我火星了…

Syntax Highlighter and Code Colorizer for WordPress

有空陆续把空间中的代码改过来。

采麦

caimai_log

转瞬即逝的思绪,往往到了第二天就彻底忘记。现在有了采麦,你可以记录这些美好。

再悲伤的人,也一定会有让他感到美好的东西;再不幸的人,也一定有资格使用采麦

Android中可自由移动悬浮窗口的实现

第二届 Google 暑期大学生博客分享大赛 – 2011 Android 成长篇

本文为参加Google暑期大学生博客分享大赛特别撰写。

写在交通违章查询软件收工之际

今天终于完工了,给有需要的同志用,反正我用的很爽。这次的开发碰到了不少形形色色的问题,好在网络强大,基本都能解决了。其实更关键的我觉得是Android强大,让开发者少费了不少功夫。

本想将开发过程中遇到的问题和心得一一记录,无奈心有余而力不足啊,等到问题解决已经是焦头烂额,实在是没有精力再来码字。再说时代在进步,程序再更新,现在的问题,现在的解决方法也许在几个月之后就变成浮云了~我就在网上翻出了不少不知道是哪年的陈旧东西,都是转载,像病毒一样蔓延。
最后我要说的是,每次开发软件花费功夫最多的就是UI,哎,头疼啊!!终于理解为什么到处都在招前端UI设计师了。

Android笔记三

正在学习使用Android的AsyncTask的异步使用方法,简单高效,比Handler,Message之类的方便多了。网上教程一大堆,搜一下就知道怎么用了。这里要记录两点曾经让我困惑的地方。

一是,几乎所有的(大部分因为转载)介绍AsyncTask的文章中都有这么一句话“只能被执行一次,否则多次调用时将会出现异常”。什么玩意?这是什么意思?这个过程一次性的?执行完就废了???后来才知道,是实例只能执行一次,如果要多次执行的话,必须每次都要New一个新实例,然后执行。what a fuсking day!

二是,网上关于AsyncTask类的使用方法,都是直接在Activity内嵌套继承AsyncTask的子类。这样固然演示方便,但当我单独将AsyncTask的子类作为一个文件编写时,遇到了一个“困难”,就是如何获取目标Activity上的控件,好在AsyncTask的onPostExecute方法中刷新控件内容呢?网上搜啊搜啊,没有。后来一想,真是笨蛋啊,获取不到,就传一个嘛!思维定势,老想获取,直接在构造函数中定义一个View传入变量,搞定!

Android笔记二

在android中利用extends Application的方法添加全局变量的方法现在应该使用得非常普遍了,这种方法在Activity中使用getApplication()方法获取Context,在View中使用getContext().getApplicationContext()方法获取Context,继而获取全局变量,简单有效。但是刚刚我被一个问题困扰了,假如我现在既不在Activity里,也不在View里,在我自定义的类里面使用全局变量怎么弄??在网上翻了半个小时才找到解决方法,鄙视一下搜索引擎关于关键字搜索的低效率!这里记录一下。

public class MyApplication extends Application {
    private static MyApplication instance;

public static MyApplication getInstance() {
    return instance;
}

@Override
public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();
    instance = this;
    }
}

如此一来,就可以在任意类中使用MyApplication.getInstance()来获取应用程序Context了,继而就可以方便的获取全局变量了!

FireStats icon 由FireStats提供支持