2013年1月14日星期一

我的新軟體 auto snap cam

詭異阿 Google Play
為什麼總下載次數會下降...
不是總數嗎??
以上額外話,以下正題:


這是一個以裝置姿態來啟動拍照的程式,您可以藉由設定不同姿態來啟動拍照,不論是在關閉螢幕還是在使用其他軟體時都可使用。讓你捕捉瞬間,看到想拍的即時拍下。
或是想知道是誰偷用你的裝置嗎?
設定前鏡頭自動拍照,當其他人使用時拍下他的面貌吧。

功能:
自動拍照
使用桌面捷徑直接拍照
強制關閉聲音(必須使用預覽拍照)

注意事項:裝置一定要有重力感測器才能使用這自動拍照,這是一個相機軟體,如果開了其他相機軟體,這軟體就沒辦法開啟相機,現階段會錯誤,之後會改為提示非法行為。

tag:無聲相機,快拍,自動拍照,相機,桌面直接拍照

已知問題:部分手機前鏡頭拍照會有問題。
注意事項:不要長時間使用自動拍照,會增加耗電量。

以上...
好像都跟google play 文字一樣,由此可知作者很懶...

2012年10月15日星期一

Android TextView跑馬燈特效

原生TextView本身就有跑馬燈特效,但限制多多:文長得超過顯示區域,一定要在得到焦點的情形;再加上又不能調速,根本就不實用,所以也就寫一個簡單的跑馬燈。

作法很簡單,繼承原本的TextView重新實作onDraw即可。之後把原本的TextView 改成自己定義的名稱即可,在layout中使用 com.example.views.MarqueeTextView就可以了。
要注意的是:在onCreate中宣告後建立可能會得不到元件寬度,所以在onDraw時,才做確定寬度較好。



package com.example.views;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.TextView;

public class MarqueeTextView extends TextView
{

    private float textLength = 0f; // 文長

    private float viewWidth = 0f; // 顯示寬度

    private float step = 0f; // 文字的橫座標

    private float speed = 1.5f; // 速度

    private float y = 0f; // 文字的縱座標

    private float start_point = 0.0f; // 起點

    private float run_length = 0.0f; // 移動距離

    private Paint paint = null;

    private String text = "";

    public MarqueeTextView(Context context) {
        super(context);
    }

    public MarqueeTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MarqueeTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public void setSpeed(float speed)
    {
        this.speed = speed;
    }

    private void init()
    {
        paint = getPaint();
        text = getText().toString();
        textLength = paint.measureText(text);
        viewWidth = getWidth();
        step = textLength;
        start_point = viewWidth + textLength;
        run_length = viewWidth + textLength * 2;
        y = getTextSize() + getPaddingTop();
    }

    @Override
    public void onDraw(Canvas canvas)
    {
        if (viewWidth == 0) {
            init();
        }
        canvas.drawText(text, start_point - step, y, paint);
        step += speed;
        if (step > run_length)
            step = textLength;
        invalidate();
    }
}


2012年9月21日星期五

The Last Day

        約略四年前的這時候開始尋找研發替代役,當時正值2008年經濟風暴,工作實在不好找,最後我選擇了符合我期待的工作內容,且工時不長但薪水也不高的公司,當時以為工時不長,代表人人皆要有所效率,薪水不高但努力還是可以有所成長,而重點是能做自己喜歡的事才最為重要,只可惜最後全部都出乎我意料之外。

2012年9月6日星期四

一些windows跟ubuntu的Android專案轉換問題

eclipse
最大的問題應該就是@Override的錯誤
同一個專案原本在ubuntu上開發的好好的,結果最近轉移到windows跳出一堆@Override的錯誤,原本還以為是windows的錯,不過看了看應該是Java的錯,要1.6才行,可是明明進到eclipse window/ Preference/java/compiler看到的就是1.6版,可是專案裡面卻是1.5版,導致了這個問題。
不過解決方法也很簡單,也就是把專案的java compiler改成1.6就可以解決了。

2012年8月29日星期三

三個月的面試心得

三年前在找研發替代役時選了一個薪水最低但最符合我興趣,工時也不長的研替工作,但進了公司才發現很多東西都不如預期,工作項目,薪水調幅,跟工作氣氛等。
所以在研替快到期之前就開始尋找新工作,打開履歷之後,很快就一堆公司來詢問工作意願,不過太多雜七雜八的工作,所以接受了幾家符合我興趣的,就趕緊把履歷關了,開始面試之旅。

2012年8月15日星期三

Android 編譯時附加第3方Jar檔

最近遇到一些第3方Jar檔編譯的問題,

首先是如何用Android source tree去build,這比較簡單,直接找packages/apps 裏面就有相關範例了

例如Calulator的Android.mk

2012年8月7日星期二

太相信Dropbox的備份復原

        最近又多了一項令我討厭Ubuntu的原因,在windows下是不可能用同名資料夾去覆蓋同名檔案的,存取會直接被拒,但在ubuntu下去只是問你要不要覆蓋,原本想覆蓋資料夾就覆蓋,很正常嘛,就選了覆蓋,沒想到盡然是把檔案給覆蓋掉,然後再也找不到它的蹤跡。
        而Dropbox居然也沒辦法把變成資料夾的檔案變回檔案,按顯示已被刪除的檔案,始終都看不到被覆蓋的檔案,只在event中留下被刪除的紀錄。
        太過信任Dropbox的復原機制了,不過總結還是Ubuntu實在不夠人性化。