2012年2月23日木曜日

ほぼ、正確な秒数を測る方法

おそらく検索すれば簡単に出てくると思いますが。
System.currentTimeMillis();
このメソッドを使うと本体の時刻をms単位で返してきます(long)。

10分程度で簡単なものを作りました。

ボタンがトグルしてスタート・ストップの役割をします。

ストップウォッチみたいな感じです

例)class名 TestCurrentTimeProjectActivity
-------------------------------

public class TestCurrentTimeProjectActivity extends Activity {
/** Called when the activity is first created. */
long startTime;
long currentTime;
        long sec;
Button button1;
TextView time;

int scn = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
time = (TextView) findViewById(R.id.time);
button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
                                //ボタンをクリックしたらstartchek()のメソッドか呼ばれます
startchek();
}
});
}

private void startchek() {
if (scn == 0) {
                        //最初のボタンクリック時の現在の時刻を取得
startTime = System.currentTimeMillis();
scn = 1;
} else {
//2回目のボタンクリック時の時刻を取得
currentTime = System.currentTimeMillis();
//1回目と2回目の時刻を引いて1000ms秒(1秒)で割る。
sec=(currentTime - startTime)/1000;
//経過時間をテキストにセット
time.setText(String.valueOf(sec));
scn = 0;
}
}
}
-----------------------------------------------------
--------------------xml------------------------------

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/time"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="count" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>
------------------------------------------------------


2012年2月21日火曜日

反射神経トレーニング-Training Reflexes-を公開しました。

反射神経トレーニング-Training Reflexes-を公開しました。
反射神経のトレーニングアプリです。
スタートボタンを押した後、赤い四角が青い四角に変わったら四角をおしてください。
マイランキングを共有しよう!

AndroidMarket
https://market.android.com/details?id=com.akasaka.reflexes1&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5ha2FzYWthLnJlZmxleGVzMSJd














Ver1.1から共有機能が使えるようになりました。

2012年2月17日金曜日

「今運おみくじ」を公開しました。


Android端末向けにアプリを公開しました。
↓↓↓AndroidMarket↓↓↓↓


現在、SE・BGM・振動等の機能が無い為、わかりにくくなっています。
次回以降のVerUPで少しずつ改善していきたいと思います。

同時並行で次のアプリも作成していきます。

アプリをみて、ここどうやってるの?とかあれば、ソースコード全開示まではいきませんが、助言できる範囲でソースコードを公開していこうと思います。


※※※※※※※※※※今回このアプリで使用した機能※※※※※※※※※※
Open-csvによるcsvファイルの読み込み
Random
Timer
Handler
加速度センサー

2012年2月10日金曜日

backを2回押してアプリ終了

マクドナルドアプリ等、backを1度押すとToastが表示され、Toast表示中にもう一度backを押すとアプリが終了するものを作成してみました。

-------------------------------------------

Toast finToast;
// backkeyで使うスレッド用////////////////////
Timer bTimer = null;
// 動いてるか動いてないかのチェック用
boolean bChk = false;
//バックを実行するかどうか
int bStar = 0;
//秒数かうんと
int bcount = 0;

        @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    finToast =Toast.makeText(this, "[戻る]をもう一度押すと終了", Toast.LENGTH_SHORT);
               // ここ自由

}

        @Override
protected void onResume() {
super.onResume();
bStar = 0;
}

protected void onPause() {
super.onPause();
backCountStop();
}

///////////////////Back///////////////////////////////////

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// なんのkeydownかを判断 今回はバックキー
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(bStar == 0){
finToast.show();
bStar = 1;
backCountStart();
}else {
backCountStop();
finToast.cancel();
finish();
}

}
return false;
}

// //////////////////////タイマー/////////////
public void backCountStart() {
// 動いてたらそのまま
if (bChk) {
// 止まってたら起動
} else {

bTimer = new Timer(true);
bTimer.schedule(new TimerTask() {
@Override
public void run() {
if(bcount == 2){
bStar =0;
bcount = 0;
backCountStop();
}
bcount++;
}
}, 1000, 1000); // 初回起動の遅延と周期指定。単位はms
bChk = true;
}
}

public void backCountStop() {
// 動いてたら入る、止まってたらスルー
if (bChk) {
if (bTimer != null) {
bTimer.cancel();
bTimer = null;
}
bChk = false;
}
}

-------------------------------------------------
とりあえずこんな感じです。

後々デバッグで修正する可能性有りです

上記より良い方法があったら教えてください!

2012年2月7日火曜日

Backボタンでアプリを終了させる方法について

わかりづらかったので一部書き換えます。

一般的にActivityを意図的に終了させる場合、「finish();」を使います。
※Home画面に戻る場合「moveTaskToBack(boolean nonRoot);」

しかし、Activityが2つ以上あり、2つ目のActivityに画面遷移した場合、そのActivityで「finish();」しても1つ目のActivityに戻ってしまいました。(1つ目のActivityが生きているので)

なので画面遷移する際の「Intent」後に「finish();」をしました。


例)
----------------------------------------------------
//ボタンの入れ物
Button button
//クリエイト

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.■■);
//ボタンにidを入れる
button = (Button) findViewById(R.id.▲▲);
//ボタンにリスナーとクリック処理をセットする
button.setOnClickListener(new OnClickListener(){


    public void onClick(View v) {
        //●●classに画面遷移する。
        startActivity(new Intent(▼▼, ●●.class));
        //現在居るActivityを終了する。
        finish();

    }

});

----------------------------------------------------
※打ちなおしてるのでスペルミス有ったらすいません。


皆さんの悩みが解決すると幸いです。

2012年2月5日日曜日

アプリ2作品目

現在作成に勤しんでおります。
なるべく早く公開出来るように頑張ります。

今回のアプリで使用する機能
CsvFileの読み込み
OpenCsv
加速度センサー
Timer

2012年2月4日土曜日

AndroidMarketにアップロードする際の注意


AndroidMarketに「Tag to Board」をアップロードした際に悩んだ点を1つご紹介します。


アプリをアップロードし、公開しましたが「このアプリケーションは 0 台以上の端末でご利用いただけます。」となり、公開したにも関わらず検索にかかりませんでした。


私の場合、「機能: android.hardware.screen.portraitが原因でした。


AndroidManifest.xml内のActivityに対して
android:screenOrientation="portrait"
で画面を縦固定していました。


これを画面固定したいActivity内で
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
する事で解決しました。(上記は縦画面固定です。)


同じ内容で悩んでいる方の解決になれば幸いです。

Android端末向けアプリを公開しました。

2012年1月26日より、android端末向けアプリケーション「Tag to Board」を公開しました。

自己開発アプリ1作目の簡単なメモ帳です。
付箋をコルク板に張るイメージでつくりました。

よろしくお願いします。

要望・不具合がございましたらご報告お願いします。

検索時は「Tag to Board」か「Atushi Akasaka」
アプリ画面です














AndroidMarket
https://market.android.com/details?id=com.akasaka.tagtoboard&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5ha2FzYWthLnRhZ3RvYm9hcmQiXQ..

はじめまして

2011年8月頃より、Android端末向けのアプリ開発をはじめました。
まだまだ、新米開発者ではありますがよろしくおねがいします。