今天收到了谷歌寄送过来的纪念衫

归类于心情日志 2 条评论

记得上个学期参加了谷歌举办的征文比赛,虽然没得奖,但是还是有纪念品的。今天刚刚收到,是纪念T恤,居然有两件,然后我才反应过来我投了两篇文章,囧。

上图:LoL


53 views , , , , ,

CodeBrowser2.1

归类于程序人生 12 条评论

今天爆走了。。。
这个版本主要改变如下
1 修复了文件选择菜单的点选范围问题
2 支持返回按键返回上一层文件夹
3 支持在浏览代码的时候用返回按键返回到文件选择选择另外的代码文件
4 优化了稳定性,退出时会自动清楚掉进程
下面给出下载地址

猛击这里下载CodeBrowser2.1

383 views , , , , , ,

CodeBrowser2.0 Android平台代码浏览器

归类于程序人生 2 条评论

首届Google暑期大学生博客分享大赛——2010 Andriod篇
支持大约20种语言的高亮了
终于支持多种语言的高亮了~
再次重新写了整个结构~
昨天的全部推翻。
用了开源项目
http://google-code-prettify.googlecode.com/
的代码,瞬间解决了各种高亮问题。。。
先上图


基本上可以当个程序使用了~
欢迎大家试用下载
猛击这里下载

448 views , , , , ,

CodeBrowser——android上的代码阅读器

归类于程序人生 一条评论

这个也就是新的CodeReader了
版本号是1.6版本,依然只支持java和c语言的代码高亮
先上截图,再讲更新内容






主要的更新如下:

  • 改善了文件选择页面的界面
  • 优化了染色算法,速度加快
  • 去掉了webview,改用TextView实现高亮,无需写入临时文件
  • 修复了屏幕切换的bug,切换后无需重新选择文件
  • 下载地址如下
    猛击这里下载CodeBrowser1.6

    1,225 views , , , , , , ,

    CodeReader的诞生

    归类于程序人生 5 条评论

    首届Google暑期大学生博客分享大赛——2010 Andriod篇

    自从买了android的手机后,用这一直都挺舒服的,从最早买的G1到现在用的G3,android系统的开发让我爱不释手,但是渐渐的我却发现在上面看代码却不是那么的爽快。基本上只能用txt格式的方法看,但是白底黑字的代码是无法让好“色”的我满足的,于是就萌发了自己DIY一个代码阅读器的想法。
    由于这个程序主要是满足我自己的需要,所以就打算写的比较简单一点,支持C/C++/Java的简单高亮就好。所以就写出了CodeReader,先放一些截图吧,然后再慢慢说这个程序诞生的故事。



    开发这个代码阅读器基本上就需要解决以下几个问题:
    1.文件的读写
    2.代码显示容器
    3.代码的缩进
    4.代码的染色
    于是我便开始上网查询了一些资料~我发现文件的读写不是什么大的问题,我有一本关于Android开发的教材中讲到了文件读写的部分,于是便模仿出了下面的代码~

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    
    package com.zerob13.Codereader;
    import java.util.Vector;
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.LinearLayout;
    import android.widget.TextView;
     
    public class fileData{
    	public String name;
    	public int type;
    }
     
    class ExpBaseAdapter extends BaseAdapter {
    	private Context mContext;
    	private Vector mItems = new Vector();
    	private LinearLayout layout,layout_more;
     
    	public ExpBaseAdapter(Context context) {
    		mContext = context;
    	}
     
    	public void addItem(fileData it) {
    		mItems.add(it);
    	}
    	public fileData getItem(int it) {
    		return (fileData)mItems.elementAt(it);
    	}
     
    	public int getCount() {
    		// TODO Auto-generated method stub
    		return mItems.size();
    	}
     
    	public long getItemId(int arg0) {
    		// TODO Auto-generated method stub
    		return arg0;
    	}
    	public int getItemType(int arg0) {
    		// TODO Auto-generated method stub
    		return getItem(arg0).type;
    	}
    	public void clearItems(){
    		mItems.clear();
    	}
     
    	public View getView(int arg0, View arg1, ViewGroup arg2) {
    		// TODO Auto-generated method stub
    		//LinearLayout layout=null ;
    	    LayoutInflater inflate = (LayoutInflater) mContext.getSystemService(android.content.Context.LAYOUT_INFLATER_SERVICE);
    		arg1 = (LinearLayout) inflate.inflate(R.layout.listfile,null);
    		TextView fm_text_01= (TextView)arg1.findViewById(R.id.fm_text_01);
    		fm_text_01.setText(getItem(arg0).name);
     
    	    //Log.v("vodone",""+arg0+" name="+getItem(arg0).name);
     
    		/*if (getItem(arg0).equals(".")){
     
    		}*/
     
    		return arg1 ;
    	}
    }

    然后就是选择显示代码的容器了,一开始我的打算是用TextView,但是我发现如果用TextView的话似乎无法让代码高亮起来啊~于是我便先去寻找了一下代码高亮的实现方法。首先是找到了一个windows下的实现,就是利用RichTextView的那种组件来完成。但是似乎android自带的组件里面没有这么一个玩意啊(哈哈,我是初学者,什么都不懂)。后来问了一个朋友被告知,其实所谓的RichTextView就是和浏览器差不多的东西,就是解析了HTML之类的标记性语言然后实现了高亮。这下子就好办了,直接用android自带的webview就可以解决容器的问题了~
    最后就是最关键也是最核心的部分了,如何把纯文本的代码转化成为色彩斑谰的网页呢?这里我用了一个很简单的算法,就是关键词替换~
    基本上就是对文本进行扫描,遇到关键词就替换为html语句,为之上色。很快我的0.1版本就出来了~
    不过问题可不是到这里就结束了,我发现原来文本里面依靠的”\t”(tab)的缩进在html里面就被忽略了,于是代码就变成了一整块黏合在一起的。怎么办呢?我查阅了html的语法,发现似乎没有什么东西是可以在html里面现实tab缩进的,一时之间卡住了。当时可谓是百思不得其解,后来很偶然的想到,为什么不直接用几个空格来代替一个tab呢?于是问题迎刃而解,不由感慨,有时候很简单的问题,但是却卡在了一条道上导致无法解决啊。
    这样,基本上这个程序就完成了。测试了几段代码,效果还不错~如果大家喜欢的话可以在这里下载哦
    猛击这里下载CodeReader

    351 views , , ,

    HTC Tattoo(G4)

    归类于随便写写 7 条评论

    HTC Tattoo,android的一台低端机。

    09年推出的。当时价格要2200左右。作为一台分辨率只有240×320的,cpu和G1相同,256MB RAM+512MB ROM,机身为106 x 55.2 x 14毫米,113克的机器没什么可以玩的地方。。。
    后来最近Tattoo掉价到1500左右。于是,寝室的zjk大牛还有工作室的小波就入手了一个。
    我把玩了一下,不得不说,Tattoo比我想象中的好用。而且,可以说惊艳。主要是以下几点

    HTC Sense界面

    一直以为Tattoo这种机器跑Sense会比较卡,比较吃力。到手后发现,相当流畅。和Hero的感觉差不多。
    其实我一直对Sense很有爱,我觉得HTC设计的UI都很实用,从日常,短信以及其他社交的widget的设计,还有整个界面的排布也好都很适合触摸屏。
    而且,android本来的界面是比较难看的。。。别说和iphone比了,甚至很多时候连wm都比不过。。。
    Sense算是对这个缺点的弥补吧。

    五维导航键

    轨迹球的取消一开始让我对Tattoo的印象很差。。。因为我一直觉得轨迹球很好用,不管是BlackBerry上,还是G1上,抑或Hero,轨迹球一直让我用的很爽。。。不过,当我实际操作过发现,Tattoo的方向键非常流畅,我一个朋友发哥说:“这个方向键就是用来玩游戏的。” 说起来手感的确和NDS上的方向键有些相似,哈哈。

    外壳

    终于说到Tattoo的噱头了,Tattoo,顾名思义,就是纹身,那么外壳肯定有比较好看的花纹的。不过zjk大牛和小波买回来的都是灰色普通版本,后面就画了一个很挫的机器人。。。但是taobao上面貌似有不少漂亮的壳,tattoo换壳很方便。比较噱头,适合喜欢换风格的人。

    屏幕

    其实网上似乎都在诟病这个电阻屏。从iphone开始,似乎电容屏一直大热。精确的操作,多点支持等等。但是考虑到Tattoo的屏幕只有那么一点大小,如果用电容屏也许反而不好,而且谁也不会去那么小的屏幕上多点的吧。。。电阻屏同时也带来的触摸笔的支持,可以弥补手指在小屏幕触摸的遗憾。小波童鞋就把他n97上面的那块撬后盖的板拿来当触摸笔了。。。囧。

    尺寸

    本来应该先写这个的,不过一开始忘记了。。。汗。
    tattoo的尺寸很小,我的手掌就可以包含下了,所以对男童鞋来说可能会比较吃力。但是很适合MM。
    而且外观也比较讨人喜欢

    233 views , , , , ,

    写了一个android上的代码浏览器

    归类于程序人生 2 条评论

    一直希望在android上看代码~不过貌似一直没找到好的软件~
    所以嘛,自己动手丰衣足食啦~~~
    0.1版本只支持java/c/c++高亮(因为自己对这几个语言比较熟悉。。。)
    写了两天,基本上能用了。

    截图如下~

    APK文件我也发上来吧,喜欢的朋友可以拿去用~
    Codereader 0.1.apk

    319 views , , , , , , ,

    空闲的时候,用手机画的蛋疼图

    归类于随便写写 参与评论








    131 views , , , , ,

    试试用android发博客

    归类于随便写写 3 条评论

    如题,装了个allove在手机上,于是可以在g1上发博了

    127 views ,

    android学习笔记之按钮实现

    归类于程序人生 参与评论

    今天搞了搞按钮~最最基本的android算是入门了一点点了。。。
    自身状态还不是很好,工作效率太低阿。。。
    先上xml文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
     
    <TextView android:text="@+id/TextView01" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
    <Button android:text="@+id/Button01" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
    </LinearLayout>

    然后是源代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    
    package com.zerob13.helloandroid;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.*;
    public class helloandroid extends Activity {
        /** Called when the activity is first created. */
        private TextView mTextView1;
        private Button mb;
     
        @Override
     
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            mTextView1=(TextView)findViewById(R.id.TextView01);
            String kk="Keep Balance";
            mTextView1.setText(kk);
            mb=(Button)findViewById(R.id.Button01);
            String k="push me";
            mb.setText(k);
            mb.setOnClickListener(new Button.OnClickListener()
            {
     
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				mTextView1.setText("nice going");
     
    			}
     
            });
     
     
        }
     
    }

    140 views , , , , , , ,

    顶部