Androidプログラムの基本から

by K.I
2014/09/19〜

Index


概要


[top]

アプリケーション起動時の動作

Activity

AndroidManifest.xml

参考: IntentFilterにDEFAULT_CATEGORYが必要な理由 →よく理解していないが、とりあえずメモ

Hello Android!

デフォルトのLayout?

Activityの追加と遷移

遷移先からの戻り方

引数を渡して遷移

遷移先からデータを返す

ActivityResultLauncherの使用例(250802)


1この例では、hm.orz.bluefish.helloandroidというパッケージを作って、その中に入れてやる必要がある。
2packageの記述は、パッケージを作ると自動的に追加されるようだ。
3Activityの名前は、大文字小文字含めて正しく指定しないと実行時に落ちる。

[top]

Layout

Layoutリソースの追加

ActivityにLayoutをセット

LayoutのWarning

文字列の定義

リソースの参照

ボタンの動作記述

→ボタンを押すと、しばらくの間、挨拶が表示される

Clickイベントのメモ

public class MainActivity extends Activity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

                :
        
        Button button1 = findViewById(R.id.button1);
        Button button2 = findViewById(R.id.button2);

        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
    }

//// onClickメソッドを別に記述する

    public void onClick(View v) {
        if (v == button1) {
                //処理1;
        }
        else if (v == button2) {
                //処理2/
        }
    }
}

4Eclipseは、よく分からないことが多い。。

[top]

ListView

セルのレイアウト

ListViewのレイアウト

ListViewにデータをセット

ListViewのクリック動作記述


5wrap_contentだと、一度仮想的に描画してサイズを確認したあと、改めて描画するというような操作をしているらしい。

[top]

ListViewのカスタマイズ

アニメーションのXML

Adapterのカスタマイズ

getViewについて

カスタムAdapterを使ってみる


6ListViewのカスタマイズということだけなら、このファイルは特に要らないけど。
7なんかシステムでやっても良い様なことまで、やらされてるんじゃないかなって気がする。

[top]

Holderを使わないListView

Layoutクラスのカスタマイズ

CustomLayoutクラスを使う

Holderを使わないカスタムAdapter

Holderを使わないListViewを使う


[top]

OverScrollListView

ListViewのカスタマイズ

OverScroll用のLayout

カスタムListViewを使う


[top]

グラフィックス

View

Viewに描画

View Group

カスタムのViewクラスの作成

カスタムViewクラスを使ってみる


8これって、けっこう凄いことだよね。

[top]

アクションバー

アクションバーを使う

Optionメニュー

menuリソースで

表示方法
ifRoom Barに表示できない場合は、Overflowメニューに表示
withText Textを表示
never 常にOverflawメニューに表示する
always 常にBar上に表示
collapseActionView android:actionViewLayoutで指定したActionViewと関連付ける

Optionメニュー選択時の処理

Optionメニューの無効化

onPrepareOptionsMenuが呼ばれない

参考: stackOverflow

サブメニューにアイコンを付ける

Spinnerのリソース

Spinnerを使う


9もしかすると、Theme使ってる所為かもしれないけど。
10MacとかWindowsでは、Menuは動的に変化することが前提なので、メニュー準備のイベントは必ず呼ばれるけど、Androidは何でこうなってるんだろう。。

[top]

Mouseの動きで描画

ViewにMouseで描画

プログラムによるレイアウト

LayoutInflaterを使う

LayoutInflaterについて


[top]

オフスクリーン

オフスクリーンの生成

Bitmap.config 1ピクセルあたりの、byte数/定義内容
ARGB_8888 4byte/αチャネル(8bit)、R(8bit)、G(8bit)、B(8bit)
ARGB_4444 2byte/αチャネル(4bit)、R(4bit)、G(4bit)、B(4bit)
RGB_565 2byte/αチャネルなし、R(5bit)、G(6bit)、B(5bit)
ALPHA_8 1byte/αチャネル(8bit)のみ

オフスクリーンを使った描画

オフスクリーンを使ったCanvas

Viewのメソッド呼び出し

Viewの保存


[top]

ファイルアクセス(250803追記)

共有ストレージのファイルにアクセスする

URIの表示

ファイル削除

Textファイル読み込み

Textファイル書き込み

Imageファイル読み込み

Imageファイル書き込み

共有ストレージのフォルダを選択

再起動時に前回の作業フォルダを再設定する

フォルダ内ファイル一覧

フォルダ内全ファイル消去

フォルダへのファイル保存


[top]

まとめ


11XMLって、冗長な感じがして、どうもあまり好きじゃない。

[top]

エラーメッセージ

Error parsing XML: not well-formed (invalid token)


12一度、このエラーが出ると、Eclipseの状態が少しおかしくなるのかもしれない。

[top]

参考


[top] [プログラムの部屋に戻る]

 ⇒ Disqusの広告がうるさすぎるので基本は非表示にしました