ラベル Practice の投稿を表示しています。 すべての投稿を表示
ラベル Practice の投稿を表示しています。 すべての投稿を表示

2011年8月11日木曜日

SeekBarとImageButtonのソースっす

ImageButtonでSeekBarの加減算


どうも。いち、プログラマのyu1rowです。
以前に書いた「SeekBarとImageButton」に、リンクで辿ってくる人が多いようです。
せっかく辿っていただいても、ソースがねーよってんじゃあ、ガッカリでしょうね。
そうでもないんかな?
というわけで、一応ソースコードを載っけておきましょう。
我流ですので、悪しからず。

public class MainActivity extends Activity {

    /** アクティビティが作成される初回に呼び出されます。 */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);

        // 加算ボタンのイベント
        ((ImageButton) findViewById(R.id.btnAdd)).setOnClickListener(new OnClickListener() {
            @Override public void onClick(View v) { increment(R.id.sbDisp, 1); }
        });

        // 減算ボタンのイベント
        ((ImageButton) findViewById(R.id.btnSub)).setOnClickListener(new OnClickListener() {
            @Override public void onClick(View v) { increment(R.id.sbDisp, -1); }
        });
    }

    /**
     * シークバーの値を増減します。
     * @param id シークバーの ID
     * @param diff 増減する値 (マイナス値で減算)
     */
    private void increment(int id, int diff) {
        SeekBar bar = (SeekBar) findViewById(id);
        bar.incrementProgressBy(diff);
        bar.incrementSecondaryProgressBy(diff);
    }

}

上記のコードでは、「btnAdd」、「btnSub」というIDのボタンで、「sbDisp」というIDのシークバーの値を増減します。
実際のSeekBarの値を表示してぇよ!って人は、シークバーのsetOnSeekBarChangeListenerでリスナーを登録して、ラベルに値を表示する等してみましょう。
以上ですっ!

2011年3月19日土曜日

SeekBarとImageButton

なぜかSpinnerを使っていた


どうもこんばんは。いち、プログラマのyu1rowです。

練習で作ってたBMIの計算ツール、基本的に身長と体重を入力してもらうワケです。
しかし、入力用に最初に採用したUIがSpinner。
身長、体重の上限下限が決まったとして、その間の値を全部イチイチ入れてました。
すっげめんどい。

さらにまぁ、使ってみると入力の面倒なこと面倒なこと。
何でSpinner?って聞かれても、「何も考えてなかった」ってのが適切な答えでしょうか。
「すぴなー」って響きが耳にきもちぃし、正直てきとーに選びました。
後々SeekBarを使うように変更するワケですが。

SeekBarの微調整をボタンで!


SeekBarを使うように修正いたしますと、指でグリグリ動かすと値が変更できるし、
イベントをめんどうがらずにちゃんと実装すれば、リアルタイムで値が変わるのが見えます。
Androidプログラマ的に、一皮ムケた感じ。。。は別にしませんがね。

ただ、値の範囲が広いと、指でちょいちょいっと微調整するのが非常にめんどい!
ということで、プラスとマイナスボタンを横に置いて、微調整できるようにしました。

でもなー
ボタン長押ししたら、なんかどあーーって変わっていって欲しいねん。
まぁ要するに、ボタン長押しでクリックがリピートして欲しいんですよ。
なんか実装がちょっとばかし面倒そうなので、後日また頑張ってみましょ。
なんか眠くなってきたから寝ましょ。今日はここまで!

追記


(2011/08/11)
検索エンジンでこのエントリにたどり着く人が多いようです。
おそらくソースコードも載せた方がいいんじゃなかろうかと思って、記事を追加しました。
「SeekBarとImageButtonのソースっす」

2011年3月17日木曜日

多言語対応

どうして多言語化?

自己満足に近しいのかもしれませんが、日本語と英語に対応しておきたいワケです。

文字情報に頼らない、言語フリーなデザインを追い求めていきたいトコロですが。
まあそれは、おいおい。できるときに。無理せずに一般的な方法でいっときましょ。
自分に甘めに、世界に許しを乞いましょ。媚びましょ。

やり方、調べてみた

ハイ、それで実際どうやって日本語と英語を切り替えるの?
って思って、ちょっとぐぐっただけでわかりました。
  • [res] - [values] - [strings.xml] 
ってのが、プロジェクト作ったらありました。
これに加えて同じように
  • [res] - [values-ja] - [strings.xml]
 ってのを加えると、日本語環境用の設定が作れちゃいます。
YAHOO!!って奇声あげながら多言語化完了!

ちょっと、つまづいた

せっかくなんで、英語環境に切り替えてみたら、エラーでアプリが御っ死んでしまいました。
原因は。。。うすうすわかってたんですけどね。

[values]と[values-ja] で共通の部分を、面倒だったんで、ニッポン男児万歳とばかりに、[values-ja]にしか書きませんでした。
ええ、面倒だったんで、[values]の[strings.xml]にはぜんぜん書きませんでした。

これ、モンダイ、です。

英語環境、日本語環境でどっちでも共通のものについては、まとめて[values]の[strings.xml]の方に書けば良かったんです。
[values-ja]に無かったら、[values]の方を探してくれるんですって!婆ちゃが言ってた!!

嘘です。敬愛する[La France Software Design]のisaさんに今日教えてもらいました。YAHOO!!
もっかい作り直して動かしてみたら、今度はエラーになりませんでしたとさ。
とっぴんぱらりの、ぷう。

Android はじめました。

見てくれた奇特な方。こんにちは。
いち、プログラマのyu1rowです。
Android端末を手に入れたので、日曜プログラムを始めます。
うそです。日曜プログラムをしたかったからAndroid端末を手に入れたんです。
とりあえず、縁のあったBMI計算機を作ってみました。
自分の端末で動くのはうれしいです。
で、スクリーンショットってどうやって撮るんかな??