スポンサーサイト

--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スマートフォンへの乗換えで、気になるところメモ

2011年04月24日 01:40

Android開発を勉強していながら、いまだに実機が無い自分…

今の携帯からスマートフォンに乗り換えるときに
疑問に思いそうなことに回答してるサイトがあったので紹介

・今のメールアドレスはそのまま使えるの?
・使用中の有料サービスはどうなるの?
・従量制、定額制どっちがいい?
・海外でも使える?
とかいろいろ書いてあります。

さっくり読めるんで、乗り換えるときの参考になればいいかな~っと。

乗り換えで何が困る?素朴な疑問30 (前編)
乗り換えで何が困る?素朴な疑問30(後編)
乗り換え前にやっとくこと/乗り換え時にやること
スポンサーサイト

TabLayoutを使う ~part3 タブがでかすぎ←小さくするよ

2011年03月06日 20:25

TabLayoutを使ってみたのは良いが、
アイコンは表示するつもりないしな~って思って
を使ってみるも、タブの大きさは変わらなかった。

そこで、もう一つ用意されている を使って、タブ(tabWidget部分)を小さくする。


tablayoutの基本的な作り方はここを参照してください。

1.tabWidgetのレイアウトを用意する。
/layout/にタブ用のレイアウトファイルを一つ作る。
tabview.xml 今回は、文字だけしか表示しないのでtextViewのみ。
位置とか大きさとかは、paddingなりgravityなりで微調整すればいい。

backgroundは、後述のselectorで色指定したファイルを指定。
デフォルトの色指定のままだと、タブが選択されたときに文字が背景の色と同化してすっごく見辛い

また、selectorをやらないで、直接の色指定(android:background = "#555555"とか)
だと、一番最初に指定されるタブ表示(setCurrentTabByTagとか)でうまく選択してくれない

2.色のSelectorファイル作成。
/drawable/にxmlファイルを作成する。
mycolor.xml ※ここで、色の指定方法でbackgroundに指定するか、textColorに指定するかで
 作り方が違ってくるみたい。(上の記述は、backgroundに指定する方法)
 参考:http://y-anz-m.blogspot.com/2010/11/androidselector-item-color.html

3.タブへviewを設定する
タブを設定するところのみ抜粋 ここで悩んだのが、 で取得しようと思ったけど、出来なかったこと。
デバッグ実行すると、nullを返してた。
findViewByIdは、そこのActivityに読み込まれているレイアウトから
検索するっぽいから、setContentView(R.layout.main);みたいに指定されている
レイアウトファイルのIDしか検索できないみたい。

そんなわけだから、
・9行目でレイアウトファイルを元に、viewの作成。
・10行目でTextVIewの作成(Viewが作られたので、そのVIew中のTextViewを検索できる)
・11行目でテキスト内容の編集
・12行目で作成したviewをTabWidgetに設定する。

作成イメージは、↓な感じ
TabLayout_CustomTabwidget

TabLayoutを使う ~Part2

2011年03月03日 21:53

TabLayoutの使い方は、2種類あって、
①アクティビティを切り替える方法
②Viewを切り替える方法がある。


って 前回 はアクティビティを切り替える方法をやった。

今回は、Viewを切り替える方法を簡単に見ていこうかと。。。

普通は、各タブごとに別々のActivityを用意して切り替えるのが良いと思うけど、
viewを切り替えて表示する方式がいい場合もあるかも知れないから、一応見とく。

前回からの変更点のみ、抜粋してみる形でのメモ。
参考:http://developer.android.com/guide/tutorials/views/hello-tabwidget.html

1.main.xmlの変更点
FrameLayoutの中にそれぞれのタブに含めるコントロールを書く。 このLinerLayoutで囲まれたものがそれぞれの、タブ内容。
前回と比べて16~50行目が追加されている。

2.Tabへの追加部分の変更
12行目で、1.で指定したIDのレイアウトが読み込まれる。
それに伴って、インテント作成の記述も消えている。

前回のインテントを使用してのタブ切り替えの方がどうも一般的っぽいです。
こっちのやり方の使いどころというのがいまいちわからない・・・orz

TabLayoutを使う ~part1

2011年02月27日 11:50

画面が小さいモバイル端末だと
Tabを持つ画面は重宝しそうかな~って思ったので
tabLayoutについてまとめてみました。

参考:http://developer.android.com/resources/tutorials/views/hello-tabwidget.html

TabLayoutは、2通りの実装方法がある。

①タブ選択により表示するActivityを呼び出す。
②タブ選択で同じActivity内にあるViewの表示を切り替える。

タブそれぞれで違ったレイアウトとかをタブで切り替えるのなら①を選択したほうが良いみたい。
理由は、一つのActivityが肥大化するのが嫌だから

今回は、①のやり方で作ってみる。
tabLayoutはEclipseのプレビュー画面に表示できないけど、現時点のEclipseの仕様っぽいから気にしない。

全体的な流れは、
タブの外観(main.xml)を作る

各タブに表示するそれぞれのActivityを作る

タブに表示するアイコンを容易する(なくてもいいけど)

TabActivityを継承したソースで、
各タブに表示するアイコンと文字、内容を設定する。
ってな感じ。一つ一つ順番に見ていけばそれほど難しくはない。

1.タブレイアウトの枠を作成する
タブ表示の全体的な入れ物を作成する。
main.xmlのソースは↓みたいになる。 LinerLayoutは、タブとタブの内容を垂直に配置するのに使ってる。
LinerLayoutで囲わなくても垂直に表示されるんだけど、
参考サイトにも、縦方向に配置するためと明確に書いてあるし、はずさないほうが無難かな。
「android:orientation=”vertical”」も指定しといたほうがいい。

ここで重要なのは、
  • TabHostを親要素とする
  • TabHostは、TabWidgetとFrameLayout要素を持っている必要がある
  • TabWidgetのIDは、「@android:id/tabs」とする。
  • FrameLayoutのIDは、「@android:id/tabcontent」とする。
ぐらいかな。IDは、システムに割り当てられたIDがあるからそれを使うべきっぽい。
@+idとかの表記でもエラーにならないけど、無駄に変えて予想外の所で不具合起こしても仕方ないし…

FrameLayoutは、Activityを呼ぶときにTabHostが自動でそのActivityで埋めてくれるので
中身は空のままで大丈夫。

2.タブに表示するアイコンを準備する
タブにアイコンを表示できるので、その用意をする。
タブが選ばれているときは灰色、未選択の時は白色が推奨されているみたいです。

上の参考URにアイコンが一つあったので、それをそのまま使わせてもらうことにした。

アイコンは/res/drawableの下のフォルダへ置きます。
画像と同じ場所に下のようなxmlファイルを作成します。

ic_tab_artists.xml
3.表示するActivityをそれぞれ用意する
今回は、どのActivityを呼ばれたかを確認するだけなので
textviewに文字を表示させただけのActivityをタブの数だけ用意しとく(今回は、3つ)
Activityを追加したときは、忘れずにAndroidManifest.xmlにを追加しとこう。
4.TabHost Activityの作成
①TabActivityから継承する
②TabHostへの参照を作る
TabHostを使えるようにするためにgetTabHostをCallする。
③インテントを作る→タブの作成
下の事をタブの数だけやる タブに文字だけ指定することも出来る。でも、高さの幅はアイコンの有無とは関係なく一定。
④デフォルト選択のタブを指定する。

⑤AndroidManifest.xmlで、メインの起動をTabHostActivityにする

ここまでのソースは↓みたいな感じ
[TabLayoutを使う ~part1]の続きを読む

XMLを読み込む

2011年02月13日 12:22

RSSフィードとかでもそうだけど
XMLを利用する場面は多い
ということで、使い方調べてみた。

XMLパーサーには、3種類あるみたい。
・DOM
わかりやすいコードを書けるし、実装も比較的簡単。でも、メモリ上にすべてのデータを持ってきて解析するので、メモリが少ない携帯端末とかで使うには致命的。Javaのコードをそのまま流用できる。
・SAX
こちらもJavaのコードをそのまま流量できる。でも、複雑なXMLの解析になると、コードも複雑化してバグの発生も多くなりそう。
・XMLプル・パーサー
JavaのStAX API をサポートしていないけど、その代用品。XMLを最後まで読む必要がない場合とかは、解析を途中で停止させることも出来る。パフォーマンスの面でメリットが多く、実装の面でも使いやすい。
http://www.ibm.com/developerworks/jp/xml/library/x-android/
を要約したものだけど・・・

SAXの知識とかも全然ないし、Androidから初めてやる人には
XMLプル・パーサーが良さそう。DOMは論外っぽいし。
DOM,SAXでXML解析したい人は上記リンクを参照。
(XMへの出力を知りたいって人も上参照)

【概要】
・ここでは、XML形式で作られているRSSフィードを解析することにする。
解析対象のRSSは、 FC2インフォメーションブログの
http://blog.fc2.com/info/?xml を解析する。

・RSSはどういう作りになっているかは
http://www.kanzaki.com/docs/sw/rss.html
を見るとわかると思う。

1.準備
・RSSリーダーで必要となってくるのは、恐らく<item>~</item>要素の中身だと思う。
 item要素の中身が1記事のセットなのでこれをまとめるクラスをあらかじめ作っておく。
 (後述SampleのItemクラス参照)

・URLからRSSのストリームを返すメソッドを作っとく。インターネットからの取得は、ここで少し説明してあります。
 (後述SampleのgetURLStreamメソッドも参照)

 ここらへんは、特にXML解析とは関係薄いのでやりやすいように修正してください。

2.XMLプル・パーサーのインスタンス取得
方法1
方法2 とインスタンスの取得方法は、2種類あるが通常は方法1で良いと思う。
方法1.は方法2で作るときのデフォルト設定みたいなものだと思うし、
1で実現できない機能が出てきたら方法2の利用を検討するぐらいでいいのかな?

2.インスタンスにXML情報を登録
これを使う。
・inputStream
XMLストリームを指定する。
・inputEncoding
エンコードを指定する。nullにすると、ストリームのデフォルト値が使われるみたい。nullで指定しても問題はなさそう?

ファイルからXMLを読みたい場合は、 を利用する。使い方は、大体同じ。

3.XML解析
ここらへんは、文章で説明されるより、Sampleで見たほうがわかりやすいと思うので
後ろに乗せるサンプルと見比べてわからない場所を順番に確認すれば理解できると思う。
で、今読み込んでいる場所がどの状態かを知る。

で、XMLのタグ名称を取得する。
で内容を取得する。
タグ名称とSTART_TAGかEND_TAGかとかで処理わけをして、
最後に、 で、次の行にカーソルを進めていくかんじ。 やっぱり、文章で書いてもわかりづらいので
↓にサンプルを乗せます。
コメントも出来るだけ残したつもりなので参考にしてください。
[XMLを読み込む]の続きを読む



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。