ページ

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

2013年12月11日水曜日

AndroidのUIの勉強 その3(LinerLayout) layout_weightとweightSum



LinerLayoutでは、子要素を任意の大きさ(比率)で、配置することができます。
使用するのは、layout_weightとweightSumです。

まず、注意することは、横に並べる場合、子要素のlayout_widthを0dpに設定する必要があります。
縦に並べる場合は、子要素のlayout_heightを0dpにします。
これを設定しなければ、想定した大きさになってくれません。


layout_weightは、子要素に設定し、その子要素がどの程度の大きさを占めるかを設定します。

weightSumは、LinerLayoutに設定し、layout_weightが指定された場合の全体の大きさを設定します。

例えば、weightSumが100で、子要素のlayout_weightが40の場合、縦または横の60%が空白になります。
weightSumが設定されない場合、子要素のlayout_weightの合計がweightSumとなるように大きさが決められます。

また、layout_weight、weightSumで配分される大きさからは、固定サイズの子要素の大きさは除かれます。
つまり、wrap_contentが設定された子要素があった場合、そのサイズを除いたサイズが、全体のサイズになります。


サンプル



サンプル1は、LinearLayoutにweightSumの設定がなく、layout_weight="1"のボタンとlayout_width="wrap_content"のボタンがあります。

weightSumがないので、layout_width="wrap_content"以外の領域がlayout_weight="1"になります。


サンプル2は、android:weightSum="4"で、android:layout_weight="1"とandroid:layout_weight="2"のボタンがあります。ボタンの大きさは、1:2で、25%のスペースが空いています。

使った、xmlは以下のとおりです。


2013年12月8日日曜日

AndroidのUIの勉強 その2(LinerLayout) gravityとlayout_gravity


まずは、LinerLayoutについてです。

位置決め

gravityを設定することでLayoutやViewの位置を決めることができます。
gravityには2種類あります。


要素意味
android:gravity子要素の位置
android:layout_gravity自分の位置




親にandroid:gravityで位置を決められても、自分のandroid:layout_gravityの設定が優先されます。
Layoutにandroid:layout_gravityを設定すると、そのLayoutの子要素すべてに影響が及びます。


下のような構成でやってみました。
・一番外側のLinerLayoutに、android:gravity:rightを設定。
  ⇒これで、すべての子要素は右寄りになります。
  ・子要素のLinearLayoutに、android:layout_gravity:leftを設定
    ⇒これで、この要素は、左寄りに配置されます。
        この子要素にも影響が及ぶので、子要素は、左寄りになります。
    ・子要素のTextViewには何も設定しない。
      ⇒何も設定していないので、親の設定に従い、左寄りになります。
    ・子要素のTextViewにはandroid:layout_gravity:rightを設定
      ⇒自分の位置を設定しているので、右寄りになります。
  ・子要素のTextViewには何も設定しない。
    ⇒何も設定していないので、親の設定に従い、右寄りになります。
  ・子要素のTextViewにはandroid:layout_gravity:leftを設定
    ⇒自分の位置を設定しているので、左寄りになります。


作成したxmlは以下のとおりです。


画面上は、以下のようになります。


2013年12月1日日曜日

Android Studioでスクリーンキャプチャーをとる方法

※ Android Studio(I/O Preview) 0.3.6を使用しています。

Android Studioでスクリーンキャプチャーをとる方法です。

まず、エミュレータを使うときに、Emulation Ontions の「Use Host GPU」がオンになっているとスクリーンキャプチャーはとれないので、外しておきます。これを外さないと画面が空のスクリーンキャプチャーになってしまいます。

AVD Managerから、使用するエミュレータのEditボタンを押して、設定画面を開きます。


Emulation OpinionsのSnapShotにチェックを付けなくても大丈夫です。


スクリーンキャプチャーを取りたいところで、Android StudioのメニューからView > Tool Windows > Androidを選択し、Android DDMSを開きます。



左上のカメラボタンを押すとスクリーンキャプチャーが取れます。




参考:http://stackoverflow.com/questions/6421108/screenshots-with-idea-intellij

2013年11月30日土曜日

AndroidのUIの勉強 その1(レイアウトの種類)

AndroidのUIについて、調べました。

AndroidのUIは、ViewとViewGroupから構成されています。
Viewは、画面上に配置される単一のオブジェクト

要素意味
View画面上に描画される単一のオブジェクト。
TextViewやButtonなど。
ViewGroup他のViewやViewGroupなどの子要素をひとまとめにしたもの。
LinearLayoutやRelativeLayoutなどのレイアウト


実際にUIを作成するには、ActivityやFragmentにベースとなるレイアウトをおいて、
その中にレイアウトやビューなどの子要素を配置していきます。

レイアウト

よく使うレイアウトは、LinearLayoutとRelativeLayoutです。

種類説明
LinearLayout子要素を縦または横一列に配置するレイアウト。

縦に並べるときには、android:orientationにverticalを設定。
横に並べるときには、android:orientationにhorizontalを設定。
デフォルトは、horizontal。
RelativeLayout相対的に子要素を配置するレイアウト。

要素のサイズ

要素のサイズは、android:layout_heightとandroid:layout_widthで指定します。
設定値は下記の通りです。

設定値意味
wrap_content幅を自動調整
match_parent(fill_parent)画面いっぱいに表示
数値(単位:dp,sp,psなど)指定サイズで表示



2013年11月20日水曜日

Androidアプリで画面をスリープ状態にさせない

Androidアプリでは、操作をしないとスリープ状態になり、画面が暗くなったり、画面が消えます。
画面を消えなくする方法は、以下のとおりです。


Activivtyの場合、Windowを取得して、FLAG_KEEP_SCREEN_ONフラグを追加してやります。


Fragmentでは、Activityを取得して、設定を行います。


設定を解除するには、追加したフラグを消すだけです。


2013年11月13日水曜日

Android エミュレータで縦横を切り替えるときに使うCtrlキーは、左Ctrlキー

変なところではまったのでメモ。

Androidエミュレータの表示を回転させて、縦横を切り替えるのは、左Ctrl+F12です。
左のコントロールキーというのがポイントで、最初は右Ctrlキーでやっていて、なぜ回転しないのか悩んでしまった…
ちなみに左Ctrl+F11やテンキーの9でも回転します。

エミュレータのキー割り当ては、公式サイトの以下にまとまってます。
Android Emulator | Android Developers

調べてないけど、他のCtrlキーを使うキー割り当てでも左Ctrlキーしか効かないのかな。

2013年11月3日日曜日

Framentを切り替えて画面遷移する

※ Android Studio(I/O Preview) 0.3.2を使用しています。

今回は、Fragment上のボタンを押すと、新しいFragment切り替えて画面遷移をします。
また、戻るボタンを押した場合に元のFragmentに戻るようにします。

プロジェクトの作成

まずは、新しいプロジェクトを作成します。




そのままBlank Activityで【Next】を押します。


【Finish】でプロジェクトが新規作成されます。



新しいFragmentの追加

プロジェクトの作成が終わると、まずパッケージ名を選択して、右クリックから、Android Componentを追加します。




名前をSubFragmentとしたFragmentを追加します。
ここでlayout fileも作成するようにしておき、【OK】を押します。



Layoutは、ファイル名をfragment_sub、Root elementをLinearLayoutにして、【OK】を押します。






リソースファイルの修正

まずは、画面遷移の契機となるボタンをfragment_main.xmlに追加します。


次に、sub_fragment.xmlにText Viewを追加します。


Fragmentの切り替え処理の実装

SubFragment.javaには、android.app.Fragmentがインポートされているため、SubFragmentクラスは、android.app.Fragmentから派生されていますが、サポートライブラリをしているので、これをandroid.support.v4.app.Fragmentから派生するように修正します。

次に、MainActivity.javaにfragment_main.xmlの次へボタンを押した場合のイベントハンドラonClickNextを実装します。

Fragmentの操作は、トランザクションという単位で管理されています。これは、FragmentTransactionのbeginTransaction()からcommitを1つの単位として、管理しています。 まず、FragmentTransactionを使用して、トランザクションを開始し、現在表示しているFragmentを新しく生成したSubFragmentにreplaceします。

このままでは、戻るボタンを押すとアプリが終了してしまうので、addToBackStackを使用して現在のトランザクションの状態をBackStackに追加しておきます。

こうすると、戻るボタンを押した場合やpopBackStackを実行すると、commit前のFragmentの状態に戻すことができます。 そして、commitを行うと、Fragmentの切り替えが実行されます。

これで、Fragmentの切り替えができるようになりました。

実行

4.3のエミュレータで実行したら、このようになります。

【次へ】ボタンを押すと、SubFragmentが表示されます。
戻るボタンを押すと、上の画面に戻ります。


2013年10月27日日曜日

SettingActivityで設定した値をFragmentに反映する その2

※ Android Studio(I/O Preview) 0.3.1を使用しています。

前回は、初回表示時にPreferenceのデータをFragmentに設定しました。
今回は、SettingActivityで変更した値をFragmentに反映します。

SharedPreferencesのデータの変更は、SharedPreferences.OnSharedPreferenceChangeListenerで通知を受け取ることができます。

そこで、PlaceholderFragmentにSharedPreferences.OnSharedPreferenceChangeListenerを実装します。

まず、SharedPreferencesにリスナーとして、PlaceholderFragmentを追加します。
そうするとSharedPreferencesの値が変更されたときに、PlaceholderFragmentのonSharedPreferenceChangedが呼ばれるので、前回と同じようにデータを取得して、コントロールに反映します。


SettingActivityで設定した値をFragmentに反映する

※ Android Studio(I/O Preview) 0.3.1を使用しています。

前回で、設定画面を呼び出すところまではできたので、今度は値を取得する方法です。

Android StudioでTarget SDKをAndroid4.3にして、新規プロジェクトをBlankActivityで作成すると、
Action BarとFragmentationが使用された状態でソースが作成されます。

今回は、起動時に、設定データを読み出し、画面に表示する方法を調べました。


プロジェクトは前回の状態から始めます。

1.fragmentation_main.xmlにPlain TextViewを追加して、idを@+id/textView2にします。


2.MainActivity.javaのPlaceholderFragmentionCreateViewに設定データを取得してきて、
先ほど追加したtextView2に設定します。
ここでは、キーがexample_textの値がtextView2に表示することにしました。



3.これで、起動するとデフォルトのままだとJhon Smithと表示されます。


設定値は、SharedPreferencesを使用して、取得することができます。
SharedPreferences自体は、PreferenceManager.getDefaultSharedPreferencesを使用して取得します。
getDefaultSharedPreferencesの引数はContextですが、Activityが持っているので、Fragmentが所属するActivityをgetActivity()で取ってやり、設定しました。

この辺りは、探してもあまり見つからなかったので、まずいところがあるのかもしれません。

次は、設定画面で変更した値を画面に反映するのを調べます。

SettingActivityで設定した値をFragmentに反映する その2


参考:
dynamic - Android : How do I update my textView in a Fragment - Stack Overflow
Android(開発)/ちょっとした設定の永続化 - 俺の基地

2013年10月25日金曜日

Android Studioでの設定画面の追加

※ Android Studio(I/O Preview) 0.3.1を使用しています。


Android StudioでBlank Activityで新規したProjectに設定画面を追加する方法です。

Blank Activityで新規Projectを作成すると、オプションメニューとSettingsというitemが生成されます。
今回は、このSettingsを押した時に、設定画面を開くようにします。

1.プロジェクトウィンドウでjavaの下のパッケージ名を選択



2.右クリックし、コンテキストメニューからNew > Activityを選択



3.New Activitiesウィンドウが表示されるので、Settings Activityを選択し、【Next】を押します。



4.そのまま、【Finish】を押すとSettingsActivityが生成されます。



5.MainActivity.javaのonOptionsItemSelectedに追加したSettingActivityを開く処理を追加します。
これで、オプションメニューのSettingsを押すと、追加したSettingActivityが表示されます。


この画面の設定データの取得や変更の反映については、下記です。

SettingActivityで設定した値をFragmentに反映する
SettingActivityで設定した値をFragmentに反映する その2

2013年10月24日木曜日

Android Studioでの新しいActivityの追加(方法 その2)

2013/10/24追記
Android Studio(I/O Preview) 0.3.1を使用すると、前回の方法で、Blank Activityも生成できました。

※ Android Studio(I/O Preview) 0.3.0を使用しています。

前回、Activityを追加した方法とは別の方法で、新しいActivityを追加します。
なぜか前回の方法では、Blank Activityが追加できなかったのですが、
こちらの方法では空のActivityが追加できます。

1.プロジェクトウィンドウでjavaの下のパッケージ名を選択



2.右クリックし、コンテキストメニューからNew > Android Componentを選択



3.New Android Componentウィンドウに設定を行い、【OK】を押します。

Name:追加するActivityの名前
Kind:Activity
Create layout fileにチェックをつける




4.Create Layout For ’xxxxx’ウィンドウに設定を行い、【OK】を押します。

File name:レイアウトxmlファイル名
Root element:レイアウトの種類



5.javaとres\layoutの下に作成したActivityのファイルが生成されます。

2013年10月22日火曜日

Android Studioでの新しいActivityの追加

2013/10/24追記
Android Studio(I/O Preview) 0.3.1を使用すると、下記の方法で、Blank Activityも生成できました。


※ Android Studio(I/O Preview) 0.3.0を使用しています。

Android Studioで新しいProjectを作ると、1つのActivityがある状態のアプリが生成されます。
新しくActivityを追加したい場合の手順をまとめます。
FullScreenや設定画面などのひな形が入ったActivityの作り方です。
この方法では、なぜかBlank Activityが作成できませんでした。
空のActivityが作りたい場合など、もっと柔軟にActivityを作りたい場合は、こちらの方法で作ることができます。

1.プロジェクトウィンドウでjavaの下のパッケージ名を選択


2.右クリックし、コンテキストメニューからNew > Activityを選択


3.New Activitiesウィンドウが表示されるので、いずれかのActivityを選択します。ここで選んだ形式でActivityが生成されます。ここでは、Fullscreen Activityを選択しました。そして、【Next】を押します。
※ここで、Blank Activityを追加しようとしましたが、生成されませんでした。Blank Activityは1つ目のActivityだけのようです。

どのようなActivityが生成されるかは、Using Code Templates | Android Developersに記載されています。




4.Activity NameやLayout Nameなどを変えて、【Finish】を押します。



5.javaとres\layoutの下に作成したActivityのファイルが生成されます。


2013年10月17日木曜日

Android開発時のパッケージ名をどのようにつけるか

公開をするアプリを作る場合、パッケージ名を適当につけてはダメ。

同じパッケージ名とならないように、ドメインをトップレベルドメインから逆順にしたものから始まるように命名することが推奨されてます。

独自ドメインを持っていない場合には、パッケージ名登録/利用サービスに登録することで、自分用のパッケージ名を持つことができます。

ここで登録すると、jp.gr.java_conf.xxxx というパッケージ名を使用できるようになります。