<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns="http://purl.org/rss/1.0/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:image="http://purl.org/rss/1.0/modules/image/"
 xmlns:admin="http://webns.net/mvcb/"
 xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel rdf:about="http://android.asai24.com/">
<title>Androidアプリサービス開発者ブログ</title>
<link>http://android.asai24.com/</link>
<description>Androidについての最新のトレンドやサービス/アプリ開発をしているなかで、気になったことを発信していきます！！
</description>
<dc:language>ja</dc:language>
<admin:generatorAgent rdf:resource="http://blog.livedoor.com/?v=2.0" />
<image rdf:resource="http://image.profile.livedoor.jp/icon/android_asai24_60.gif"/>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<items>
 <rdf:Seq>
  <rdf:li rdf:resource="http://android.asai24.com/archives/51536249.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51533694.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51530321.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51510340.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51503509.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51501707.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51496064.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51495656.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51489288.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51487765.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51484166.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51483946.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51483102.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51482599.html" />
  <rdf:li rdf:resource="http://android.asai24.com/archives/51477379.html" />
 </rdf:Seq>
</items>
</channel>
<image rdf:about="http://image.profile.livedoor.jp/icon/android_asai24_60.gif">
 <title>Androidアプリサービス開発者ブログ</title>
 <link>http://android.asai24.com/</link>
 <url>http://image.profile.livedoor.jp/icon/android_asai24_60.gif</url>
</image>
<item rdf:about="http://android.asai24.com/archives/51536249.html">
<title>Android SDKバージョンの違いによる落とし穴</title>
<link>http://android.asai24.com/archives/51536249.html</link>
<description>つい先日、Androidアプリのバージョンアップを行ったところ、1.5端末で落ちるという報告がいくつも届いた。
修正は微々たるもので、Manifestのターゲットを変えるなどもしておらず、なぜ発生するのかが不明だったのだが、ようやく判明。

調査の結果、Android SDKのバージョ...</description>
<dc:creator>yoshike2</dc:creator>
<dc:date>2010-08-30T14:48:32+09:00</dc:date>
<dc:subject>Android</dc:subject>
<content:encoded><![CDATA[つい先日、Androidアプリのバージョンアップを行ったところ、1.5端末で落ちるという報告がいくつも届いた。<br>
修正は微々たるもので、Manifestのターゲットを変えるなどもしておらず、なぜ発生するのかが不明だったのだが、ようやく判明。<br>
<br>
調査の結果、Android SDKのバージョンによる落とし穴であった。<br>
<br>
以前まではandroid-sdk-r3-windowsのSDK（android2.0まで対応しているSDK）を使用しており、作成するアプリがmin-sdkが3でtarget-sdkが4のアプリのため、問題なく開発できていたのだが、最近、開発用PCの移動に伴い最新版のandroid-sdk-r6-windowsのSDK（2.2対応しているもの）をダウンロードし、使用し始めていた。<br>
<br>
問題は、以前までのSDKは1.5端末であってもdrawable-mdpiを見に行くように動いていたのだが、最新版では見に行かなくなってしまい、画像がありませんというエラーで強制終了となってしまう。<br>
回避策としては、drawable-mdpiではなく、drawableに画像を入れてあげることで1.5端末でも問題なくなる。<br>
<br>
完全なテスト不足なのだが、動作していたものが動かなくなるのはきつい。。。<br>
今後はベースの環境を変える際はより一層の注意を払います。。。
<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51536249" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51533694.html">
<title>Androidのカメラプレビュー時の向きについて</title>
<link>http://android.asai24.com/archives/51533694.html</link>
<description>Androidのカメラのプレビュー時の向き指定を縦にするべく、色々と苦しめられましたので、分かったことを共有します。

結論。

Activityをlandscapeにすること！

今まで、以下のようにパラメータをセットして、縦表示に対応してきました。
params.set(&quot;orientation&quot;, &quot;portr...</description>
<dc:creator>yoshike2</dc:creator>
<dc:date>2010-08-24T15:48:06+09:00</dc:date>
<dc:subject>Android</dc:subject>
<content:encoded><![CDATA[Androidのカメラのプレビュー時の向き指定を縦にするべく、色々と苦しめられましたので、分かったことを共有します。<br>
<br>
結論。<br>
<br>
<b>Activityをlandscapeにすること！</b><br>
<br>
今まで、以下のようにパラメータをセットして、縦表示に対応してきました。<br>
params.set("orientation", "portrait");<br>
しかし！！端末によって動作するものと動作しないもののが結構あることがわかりました。DroidとかDroid Xとか。NexusOneでも2.1と2.2で動作が違ったりとか。<br>
<br>
なので、カメラを縦表示プレビューにどうしてもしたい場合はActivityをlandscapeにし、ボタンやら画像やらテキストやらは力技で縦表示にあわせるしかありません。<br>
画像の場合は、画像の向きを-90度回転させて表示すればオーケー。<br>
テキストやボタンはサイズを縦、横変えてあげて、文字列はonDrawメソッドでcanvasを-90度回転させましょう。<br>
<br>
やっかいなのはダイアログです。<br>
アニメーションで回転させてsetFillAfter(true)でいけるかなと思いましたが、駄目です。回転後に向きが元に戻っちゃいます。<br>
カスタムレイアウトをダイアログにはめ込んで縦表示にみせかけるという方法も駄目です。ダイアログはデフォルト真ん中に表示されますが、表示位置をずらそうとしても、どうしてかダイアログ上部に空白ができてしまいます。<br>
縦表示をした時に幅が細いダイアログか、位置が左によったダイアログになってしまします。<br>
ちなみに表示位置は、dialog.getWindow().getAttributes()で取得したAttributeのxやyを変えることで調整できます。<br>
<br>
結局、行った方法としてはダイアログは使わずダイアログもどきのレイアウトを作成。表示してダイアログと同じ動きになるよう対応しました。<br>
<br>
ちなみに、Activityをダイアログのthemeで表示することでも対応できるかと思います。今回はActivityを分けたくなかったので使いませんでしたが。<br>
<br>
<br>
Android 2.2からは新たにsetDisplayOrientationメソッドが導入されたので、2.2以上のみターゲットということでしたら、こいつを使えば良いかと思います。<br>
<br>
もしかしたらもっとスマートに縦表示できる方法があるかもしれません。<br>
ご存知の方はコメントお願いします。
<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51533694" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51530321.html">
<title>Dorid &amp; Droid X 端末でMapが強制終了してしまう件</title>
<link>http://android.asai24.com/archives/51530321.html</link>
<description>Androidのアプリ開発を行っていると、特定の端末のみで発生するエラーに出くわすことがあります。

先日対応したバグもDroid, Droid X 端末でのみ（もしかしたら他にもあるかもしれませんが）発生していたバグだっためメモしておきます。

該当バグはGoogleMap表示時に落ちて...</description>
<dc:creator>yoshike2</dc:creator>
<dc:date>2010-08-24T15:11:30+09:00</dc:date>
<dc:subject>Android</dc:subject>
<content:encoded><![CDATA[Androidのアプリ開発を行っていると、特定の端末のみで発生するエラーに出くわすことがあります。<br>
<br>
先日対応したバグもDroid, Droid X 端末でのみ（もしかしたら他にもあるかもしれませんが）発生していたバグだっためメモしておきます。<br>
<br>
該当バグはGoogleMap表示時に落ちていたエラーで、以下のようなバグレポートが送信されておりました。<br>
<br>
java.lang.ClassCastException: android.graphics.drawable.BitmapDrawable<br>
at com.google.android.maps.MyLocationOverlay.getLocationDot(MyLocationOverlay.java:180)<br>
at com.google.android.maps.MyLocationOverlay.drawMyLocation(MyLocationOverlay.java:561)<br>
at com.google.android.maps.MyLocationOverlay.draw(MyLocationOverlay.java:511)<br>
<br>
<br>
GoogleMapを使用し、MyLocationOverlayを使っているアプリでは共通して発生するかと思います。<br>
悩ましい問題でしたが、他にも同様な問題に直面した方がおり、対応方法は以下のページを参考にさせて頂きました。<br>
<a href="http://dimitar.me/applications-that-use-the-mylocationoverlay-class-crash-on-the-new-droid-x/">Android applications that use the MyLocationOverlay class crash on the new Droid X</a><br>
<br>
上記ページの対応により、無事エラーがなくなりました。<br>
同様の問題にはまっている方は参考にしていただければと思います。
<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51530321" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51510340.html">
<title>Android 2.2のSDへのアプリインストールについて</title>
<link>http://android.asai24.com/archives/51510340.html</link>
<description>Android2.2から可能になったSDへのアプリインストールですが、アプリ側で対応が必要とのことでしたので、メモとして残します。

簡単です。
AndroidManifest.xmlファイルへ
android:installLocation=&quot;preferExternal&quot;
を記述するだけでOKです。

preferExternalを指定するこ...</description>
<dc:creator>yoshike2</dc:creator>
<dc:date>2010-07-05T16:29:53+09:00</dc:date>
<dc:subject>Android</dc:subject>
<content:encoded><![CDATA[Android2.2から可能になったSDへのアプリインストールですが、アプリ側で対応が必要とのことでしたので、メモとして残します。<br>
<br>
簡単です。<br>
AndroidManifest.xmlファイルへ<br>
<b>android:installLocation="preferExternal"</b><br>
を記述するだけでOKです。<br>
<br>
preferExternalを指定することで、SDへアプリをインストールするように設定できます。ただし、100%保証する訳ではなく、SDの容量がフルの場合などは内部に保存されます。<br>
<br>
preferExternal以外には"auto"や"internalOnly"を指定することができます。<br>
<br>
"auto"に設定した場合は、デフォルトでは端末内部に保存されますが、容量がフルの場合やユーザーが設定から移動する場合にSD上へ保存されます。<br>
<br>
"internalOnly"では必ず内部に保存され、容量がフルの場合はインストールに失敗します。<br>
<br>
<br>
実際に指定をする場合は、プロジェクトの設定でターゲットをAPI Level 8に変更し、上記内容をManifestへ指定、android:minSdkVersionにサポートしたい最小バージョンを指定してあげるとOKです。<br>
<br>
<br>
以上です。<br>
詳細は以下リンクを参考にしてください。<br>
<br>
App Install Location<br>
<a href="http://developer.android.com/intl/ja/guide/appendix/install-location.html">http://developer.android.com/intl/ja/guide/appendix/install-location.html</a><br>
<br>
android:installLocation<br>
<a href="http://developer.android.com/intl/ja/guide/topics/manifest/manifest-element.html#install">http://developer.android.com/intl/ja/guide/topics/manifest/manifest-element.html#install</a><br>
<br>
<br>
<font color="red">※2010/07/15追記</font><br>
SDへ保存したアプリの領域にアクセスしたい場合は、新たにAPIが追加されてます。<br>
<a href="http://developer.android.com/intl/ja/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)">public abstract File getExternalFilesDir (String type) </a><br>
また、SDですのでアクセスする場合はstorage stateの確認が必要になります。<br>
そして、一番重要なこととして、端末内のアプリ領域と違って全てのアプリケーションがこの領域への読み書き権限があります。つまりセキュリティレベルが違うので注意が必要とのことです。
<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51510340" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51503509.html">
<title>データフォルダからの動画（音声）再生方法について</title>
<link>http://android.asai24.com/archives/51503509.html</link>
<description>データフォルダからの動画再生についてはまったのでメモ残します。

動画を再生する場合、SDカードに保存したファイルを読み込むのは問題ないのですが、データフォルダから再生するにはいくつかハードルが存在します。
（※ただでさえ端末の容量少ないんだから、そんなとこに...</description>
<dc:creator>yoshike2</dc:creator>
<dc:date>2010-06-25T19:28:06+09:00</dc:date>
<dc:subject>Android</dc:subject>
<content:encoded><![CDATA[データフォルダからの動画再生についてはまったのでメモ残します。<br>
<br>
動画を再生する場合、SDカードに保存したファイルを読み込むのは問題ないのですが、データフォルダから再生するにはいくつかハードルが存在します。<br>
（※ただでさえ端末の容量少ないんだから、そんなとこに動画なんて置かないよ！！というのはごもっともの意見というのはもちろん承知しておりますので・・・。）<br>
<br>
SDと同じ方法で、データフォルダに置いたファイルをMediaPlayerで再生しようとすると再生できません。<br>
なぜかというとPermissionが原因です。<br>
下記にも記述されておりますが、MediaPlayerはセキュリティー上ルートアクセス権限がないため、アプリのデータフォルダにはアクセスできません。<br>
<a href="http://www.mail-archive.com/android-developers@googlegroups.com/msg12519.html">File permission about MediaPlayer</a><br>
<br>
<br>
どうしようかと思いましたが、そういえば・・・<br>
<a href="http://groups.google.co.jp/group/android-sdk-japan/browse_thread/thread/99cc643b015224c5/821b8ca5a6ee2921">新規作成ファイルのパーミッションについて</a><br>
こんなのがあったなぁと思い出し、早速コードを引用させてもらいexecメソッドを使いMediaPlayerへパーミッションを付与してみました。<br>
裏技的だし、問題ないかなぁと不安をかかえつつもEmulatorで確認し、オーケー！<br>
Xperiaでも問題なく再生でき、これで問題解決！！<br>
<br>
<br>
<br>
・・・・・・・・・と<br>
・・・・・・・・・思<br>
・・・・・・・・・い<br>
・・・・・・・・・ま<br>
・・・・・・・・・し<br>
・・・・・・・・・た<br>
・・・・・・・・・が<br>
<br>
<br>
<br>
HTC Desireでアウト！NexusOneでもOut!!<br>
execメソッド実行でエラー出ちゃいました。<br>
やはり、裏技は良ろしくないということですね。<br>
<br>
<br>
さて、これからどうしようと困ったのですが、上記一番初めに記載したリンク先のポストをもう一度見返すと、<br>
Your app can explicitly grant MediaPlayer temporary access to secure<br>
files by opening the file and passing the file descriptor to<br>
MediaPlayer using the setDataSource(FileDescriptor fd) method.<br>
と書いてます。<br>
なるほど。FileDescriptorを使えば良いんですね。<br>
<br>
というわけで、FileDescriptorを使用して動画再生実行！<br>
<br>
　　　　　　　　・<br>
　　　　　　　　・<br>
　　　　　　　　・<br>
　　　　　　　　・<br>
　　　　　　　　・<br>
<br>
再生できません・・・。<br>
MediaPlayerのsetDataSourceでnullなcontentはopenできないよと言われ、落ちちゃいます・・・。<br>
ここからなんでだーと、調べても分からず、相当な時間を費やしてしまいましたが、先程解決しました。<br>
NG、OKなパターンはそれぞれ以下になります！<br>
<br>
<br>
＜NGなパターン＞<br>
FileInputStream is = new FileInputStream(file);<br>
FileDescriptor fd = is.getFD();<br>
mp.setDataSource(fd);<br>
<br>
＜OKなパターン＞<br>
mp.setDataSource(new FileInputStream(file).getFD());<br>
<br>
<br>
ちなみにmp.setDataSource(is.getFD());もダメです。<br>
とりあえずこれで再生できるようにはなったのですが、なぜこうしないと再生できないのか理由が分からない・・・。<br>
どなたか分かる方がいたらぜひご教授頂きたいです。<br>

<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51503509" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51501707.html">
<title>Androidアプリ開発者向け：「HTC Desire」における注意点</title>
<link>http://android.asai24.com/archives/51501707.html</link>
<description>現在も品薄状態が続いているHTC Desireですが、今まで日本で発売された端末と比較して動作が異なる点があるようなので、気づいた点をまとめておきます。


・カメラプレビューで落ちる
これですね。
Issue 7909:　Camera preview does not work on HTC Desire
http://code.go...</description>
<dc:creator>yoshike2</dc:creator>
<dc:date>2010-06-21T13:38:32+09:00</dc:date>
<dc:subject>Android</dc:subject>
<content:encoded><![CDATA[現在も品薄状態が続いているHTC Desireですが、今まで日本で発売された端末と比較して動作が異なる点があるようなので、気づいた点をまとめておきます。<br>
<br>
<br>
・カメラプレビューで落ちる<br>
これですね。<br>
Issue 7909:　Camera preview does not work on HTC Desire<br>
<a href="http://code.google.com/p/android/issues/detail?id=7909">http://code.google.com/p/android/issues/detail?id=7909</a><br>
<br>
NexusOneでも同様の問題が発生するようです。<br>
対応方法は上記Postの下のほうにも記述されておりますが、日本語でTechfirmさんがブログで詳細に記述されていますので、こちらを参考にするのがベストかと思います。<br>
<a href="http://labs.techfirm.co.jp/android/cho/1647">http://labs.techfirm.co.jp/android/cho/1647</a><br>
<br>
<br>
・プレビュー時の向き<br>
エミュレーターや他端末はカメラプレビューがデフォルトで90度回転した状態で表示されます。それを防ぐために<br>
params.set("orientation", "portrait");<br>
を記述している方は要注意！<br>
Desireで確認すると90度回転した状態になってしまいます。<br>
<br>
Nexus Oneでは問題ないだけに、端末固有の問題？かもしれません。<br>
回避策としては、Acitivityに対してlandscapeで表示と固定するか、Build.MODELとかを見て、Deisreの場合は「params.set("orientation", "portrait");」を指定しないようにするかどちらかかと思われます。<br>
まあ、これからも数々の端末が出ることを考えるとlandscape固定で表示するのが無難ですね。<br>
<br>
<font color="red">2010/08/24追記。<br>
「params.set("orientation", "portrait");」は使用するべきではないです。複数の端末で動作しません。<br>
詳細は、<a href="http://android.asai24.com/archives/51533694.html">この記事</a>で。<br>
</font><br>
<br>
<br>
・画像がギャラリーへ反映されない<br>
アプリ内のカメラで画像を保存後、ギャラリーを確認しても保存した画像が表示されません。端末のカメラで撮ったものは問題ないです。<br>
端末の再起動もしくは、SDカードを一度マウントして解除すると確認できるようになります。<br>
HTC Incredibleで同様の現象があるようです。悩ましいですねぇ。<br>
<a href="http://groups.google.com/group/android-developers/browse_thread/thread/313d506de3fc771f/db7bdba68a48c847?lnk=gst&q=gallery#db7bdba68a48c847">http://groups.google.com/group/android-developers/browse_thread/thread/313d506de3fc771f/db7bdba68a48c847?lnk=gst&q=gallery#db7bdba68a48c847</a><br>
<font color="red">※他アプリで試したところ問題ないものがあったので調査。以下スレッドで記述されている方法で解決。</font><br>
<br>
How to refresh sdcard?<br>
<a href="http://groups.google.com/group/android-developers/browse_thread/thread/8d4ee33849c2e774">http://groups.google.com/group/android-developers/browse_thread/thread/8d4ee33849c2e774</a><br>
ということで、以下を追加することで、ギャラリーへ反映されることを確認。<br>
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse ("file://" + Environment.getExternalStorageDirectory())));<br>
<br>
<br>
おそらく今後もっとたくさんの端末がリリースすることで色々な問題が発生してくると思います。<br>
Andoridの最大の強みであるオープンという部分が、アプリの開発者にとっては悩ましい問題として降りかかってきそうです。<br>
<br>
<br>
以上ですが、上記、違うよ！という方がいらしたらコメントで指摘していただけると助かります。<br>
よろしくお願いします。
<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51501707" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51496064.html">
<title>iPhone 4発表！！６月１５日に予約開始、２４日に発売開始！！</title>
<link>http://android.asai24.com/archives/51496064.html</link>
<description>       yoshike2: もしやiPhone 4は秋にドコモ、auからも発売!?　米国では既存ユーザーへ異例の縛り解除でアップグレード提供中　 http://ht.ly/1VnK4 これは楽しみ！！            yoshike2: iPhone OS 4.0（iOS）の詳細　 http://ht.ly/1Vnwi            yoshike2: スマー...</description>
<dc:creator>yoshike2</dc:creator>
<dc:date>2010-06-08T10:08:09+09:00</dc:date>
<dc:subject></dc:subject>
<content:encoded><![CDATA[ <div class="twitter_timeline">   <a href="http://twitter.com/yoshike2/status/15668573509" target="_blank"><img src="http://a3.twimg.com/profile_images/709616313/a_normal.jpeg" class="left" /></a>   <p class="left">yoshike2: もしやiPhone 4は秋にドコモ、auからも発売!?　米国では既存ユーザーへ異例の縛り解除でアップグレード提供中　 <a href="http://ht.ly/1VnK4" target="_blank">http://ht.ly/1VnK4</a> これは楽しみ！！</p>   <br class="twitter_timeline_bottom" /> </div>  <div class="twitter_timeline">   <a href="http://twitter.com/yoshike2/status/15667920740" target="_blank"><img src="http://a3.twimg.com/profile_images/709616313/a_normal.jpeg" class="left" /></a>   <p class="left">yoshike2: iPhone OS 4.0（iOS）の詳細　 <a href="http://ht.ly/1Vnwi" target="_blank">http://ht.ly/1Vnwi</a></p>   <br class="twitter_timeline_bottom" /> </div>  <div class="twitter_timeline">   <a href="http://twitter.com/yoshike2/status/15667231250" target="_blank"><img src="http://a3.twimg.com/profile_images/709616313/a_normal.jpeg" class="left" /></a>   <p class="left">yoshike2: スマートフォンのスペックを比較：iPhone 4 vs EVO 4G <a href="http://ht.ly/1Vnof" target="_blank">http://ht.ly/1Vnof</a></p>   <br class="twitter_timeline_bottom" /> </div>
<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51496064" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51495656.html">
<title>Android NDKの使用</title>
<link>http://android.asai24.com/archives/51495656.html</link>
<description>AndroidNDK使用にあたって、導入の分かりやすいサイトを見つけたので、メモ。

・NDK導入～サンプル使用
Android(アンドロイド)情報-ブリリアントサービス
http://d.hatena.ne.jp/bs-android/20090707/1246952991

・自分で作成
BABUKUMA (^(工)^)
http://babukuma.com/2010/...</description>
<dc:creator>yoshike2</dc:creator>
<dc:date>2010-06-07T11:52:24+09:00</dc:date>
<dc:subject>Android</dc:subject>
<content:encoded><![CDATA[AndroidNDK使用にあたって、導入の分かりやすいサイトを見つけたので、メモ。<br>
<br>
・NDK導入～サンプル使用<br>
Android(アンドロイド)情報-ブリリアントサービス<br>
http://d.hatena.ne.jp/bs-android/20090707/1246952991<br>
<br>
・自分で作成<br>
BABUKUMA (^(工)^)<br>
http://babukuma.com/2010/03/android-android-ndl-r3_11.html<br>
<br>
<br>
この２つを押さえれば、あとはぐぐりながら、細かい実装ができると思います。
<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51495656" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51489288.html">
<title>&quot;Wrong Image Size&quot; Exception in MapView</title>
<link>http://android.asai24.com/archives/51489288.html</link>
<description>adamrockerさんが「throw Life」で紹介していたバグ報告機能をアプリに組み込んでからユーザー端末上で発生しているバグはエラーで報告されてくるので非常に助かっているのだが、導入してから頻繁にXperia端末から同様のエラー報告が寄せられていた。

その原因がようやく判...</description>
<dc:creator>yoshike2</dc:creator>
<dc:date>2010-05-24T15:54:07+09:00</dc:date>
<dc:subject>Android</dc:subject>
<content:encoded><![CDATA[adamrockerさんが「throw Life」で紹介していた<a href="http://www.adamrocker.com/blog/288/bug-report-system-for-android.html">バグ報告機能</a>をアプリに組み込んでからユーザー端末上で発生しているバグはエラーで報告されてくるので非常に助かっているのだが、導入してから頻繁にXperia端末から同様のエラー報告が寄せられていた。<br>
<br>
その原因がようやく判明したので報告。<br>
<br>
ログからはMapViewにて以下のようなエラーをはいて落ちていた。<br>
java.lang.IllegalArgumentException: wrong image size: 192 192<br>
at com.google.googlenav.map.MapTile.getImage(Unknown Source)<br>
at com.google.googlenav.map.Map.drawTile(Unknown Source)<br>
・<br>
・<br>
・<br>
<br>
エラーログでぐぐってみると以下のIssueが発行されていることが確認できる。<br>
<a href="http://code.google.com/p/android/issues/detail?id=4599">Issue 4599:"Wrong Image Size" Exception in MapView under Android 2.0</a><br>
<br>
上記のissueでは原因や解決方法が不完全な部分があるのでそれを補足して、以下にまとめる。<br>
<br>
＜エラーが発生する環境＞<br>
・Android 2.0.1未満（確認をしてないが、おそらくAndroid1.6以上）<br>
・実機での動作時（エミュレータでは発生しない）<br>
・WVGAやFWVGA端末（だと思うが、未確認）<br>
・<b>AndroidManifestに「android:anyDensity="true"」を記述している場合</b><br>
<br>
<br>
＜エラーが発生する操作＞<br>
・GoogleMapのサテライトビューモードで表示<br>
・GoogleMapで表示しきれない範囲を超えて拡大しようとすると該当エラーが発生<br>
※ちなみにGoogleMapのサテライトビューモードの場合、getMaxZoomLevel() が正常に機能していないため、プログラム側で表示可能領域を超えた場合に拡大するのを防ぐという処理が入れられない。。。<br>
<br>
<br>
＜修正方法＞<br>
・AndroidManifestの「android:anyDensity」を「false」に変更<br>
<br>
<br>
上記修正でとりあえずは対応可能。<br>
しかし、解像度に合わせて使用画像を変えるなどしている場合（「drawable-hdpi」などを使用している場合）は「android:anyDensity」を「false」に変更したことにより、解像度が大きい端末でも「drawble-mdpi」の画像が使用されるなどの副作用がある。<br>
<br>
QVGA端末～WVGA端末まで全てに対応可能なアプリを作ろうとしたら、ちょっとデザインを入れたものだと、この副作用はキツイですね・・・。<br>
もっと良い対応方法があれば良いですが。<br>
ご存知の方がいらしたら、コメントよろしくです。<br>

<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51489288" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51487765.html">
<title>2010/05/20　Pick Up News!!　～PayPal、Android用に開発ツール「Mobile Payments Library」を発表～</title>
<link>http://android.asai24.com/archives/51487765.html</link>
<description>       yoshike2: PayPal、Android用に開発ツール「Mobile Payments Library」を発表 http://ht.ly/1NrAy  #androidjp            yoshike2: BIGLOBEが「andronavi」刷新、有料アプリ提供も　 http://ht.ly/1NrK4 アプリの直接配信開始！ #androidjp            yoshike2: Go...</description>
<dc:creator>yoshike2</dc:creator>
<dc:date>2010-05-21T12:11:46+09:00</dc:date>
<dc:subject>Android</dc:subject>
<content:encoded><![CDATA[ <div class="twitter_timeline">   <a href="http://twitter.com/yoshike2/status/14340063154" target="_blank"><img src="http://a3.twimg.com/profile_images/709616313/a_normal.jpeg" class="left" /></a>   <p class="left">yoshike2: PayPal、Android用に開発ツール「Mobile Payments Library」を発表 <a href="http://ht.ly/1NrAy" target="_blank">http://ht.ly/1NrAy</a>  #androidjp</p>   <br class="twitter_timeline_bottom" /> </div>  <div class="twitter_timeline">   <a href="http://twitter.com/yoshike2/status/14340442781" target="_blank"><img src="http://a3.twimg.com/profile_images/709616313/a_normal.jpeg" class="left" /></a>   <p class="left">yoshike2: BIGLOBEが「andronavi」刷新、有料アプリ提供も　 <a href="http://ht.ly/1NrK4" target="_blank">http://ht.ly/1NrK4</a> アプリの直接配信開始！ #androidjp</p>   <br class="twitter_timeline_bottom" /> </div>  <div class="twitter_timeline">   <a href="http://twitter.com/yoshike2/status/14346295400" target="_blank"><img src="http://a3.twimg.com/profile_images/709616313/a_normal.jpeg" class="left" /></a>   <p class="left">yoshike2: GoogleのSergey Brin曰く: ネイティブアプリとWebアプリは近未来に一つに収束する <a href="http://ht.ly/1NubF" target="_blank">http://ht.ly/1NubF</a></p>   <br class="twitter_timeline_bottom" /> </div>  <div class="twitter_timeline">   <a href="http://twitter.com/yoshike2/status/14332618729" target="_blank"><img src="http://a3.twimg.com/profile_images/709616313/a_normal.jpeg" class="left" /></a>   <p class="left">yoshike2: 2メガピクセルのカメラを搭載した次期iPod touchが流出!? <a href="http://ht.ly/1NpPw" target="_blank">http://ht.ly/1NpPw</a></p>   <br class="twitter_timeline_bottom" /> </div>  <div class="twitter_timeline">   <a href="http://twitter.com/yoshike2/status/14332512067" target="_blank"><img src="http://a3.twimg.com/profile_images/709616313/a_normal.jpeg" class="left" /></a>   <p class="left">yoshike2: Androidが急成長、Windows Mobileを追い抜く <a href="http://ht.ly/1NpNx" target="_blank">http://ht.ly/1NpNx</a></p>   <br class="twitter_timeline_bottom" /> </div>  <div class="twitter_timeline">   <a href="http://twitter.com/yoshike2/status/14332687522" target="_blank"><img src="http://a3.twimg.com/profile_images/709616313/a_normal.jpeg" class="left" /></a>   <p class="left">yoshike2: Google、全Android端末を一堂に集める <a href="http://ht.ly/1NpQ2" target="_blank">http://ht.ly/1NpQ2</a></p>   <br class="twitter_timeline_bottom" /> </div>  <div class="twitter_timeline">   <a href="http://twitter.com/yoshike2/status/14332367676" target="_blank"><img src="http://a3.twimg.com/profile_images/709616313/a_normal.jpeg" class="left" /></a>   <p class="left">yoshike2: Google、Webアプリストア「Chrome Web Store」オープンへ <a href="http://ht.ly/1NpLu" target="_blank">http://ht.ly/1NpLu</a></p>   <br class="twitter_timeline_bottom" /> </div>
<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51487765" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51484166.html">
<title>iPhoneみたいな下部メニュー</title>
<link>http://android.asai24.com/archives/51484166.html</link>
<description>画面の上部と下部に固定部を配置して、
その中にScrollViewやListViewを配置する方法。

普通にLinearLayoutでやるとどうしても下部のパーツが隠れてしまって、
ScrollViewの長さを指定してやると隠れないんだけど、
それだと画面サイズが変わった時に対応できなかったりでい...</description>
<dc:creator>satoru_fu</dc:creator>
<dc:date>2010-05-13T22:10:03+09:00</dc:date>
<dc:subject>0からはじめるAndroid開発</dc:subject>
<content:encoded><![CDATA[画面の上部と下部に固定部を配置して、<br>
その中にScrollViewやListViewを配置する方法。<br>
<br>
普通にLinearLayoutでやるとどうしても下部のパーツが隠れてしまって、<br>
ScrollViewの長さを指定してやると隠れないんだけど、<br>
それだと画面サイズが変わった時に対応できなかったりでいろいろ不具合が、、、<br>
<br>
それを解消する方法を教えてもらった。<br>
<br>
<blockquote>&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"<br>
	android:layout_height="fill_parent"><br>
<br>
	&lt;!-- header --><br>
	&lt;TextView<br>
		android:id="@+id/example_header"<br>
		android:layout_alignParentTop="true"<br>
		android:layout_height="wrap_content"/><br>
<br>
	&lt;!-- footer --><br>
	&lt;TableLayout<br>
		android:id="@+id/example_footer"<br>
		android:layout_height="wrap_content"/><br>
<br>
	&lt;!-- contents --><br>
	&lt;ScrollView<br>
		android:layout_below="@id/example_header"<br>
		android:layout_above="@id/example_footer"<br>
		android:layout_height="wrap_content"/><br>
<br>
&lt;/RelativeLayout><br>
</blockquote><br>
<br>
言われてみれば当たり前なのかもしれないけど、以前から結構悩んでたことでもある。<br>
RelativeLayout使うところまではやってたけど、<br>
先に上部と下部を配置して間に挟むってのが思いつかなかったー。<br>
<br>
<br>
また、今日はAndroid Nine Patch(9-patch)フォーマット画像を作るために、<br>
android/toolsにあるdraw9patchというソフトをはじめて使った。<br>
<br>
9-patchフォーマットはボタンやDialogやViewの背景などに使うと拡大しても汚くならないフォーマット。<br>
<br>
ソフトの使い心地はあまりよくないけど、このフォーマット自体はいい。<br>
見た目にこだわるアプリ作るならこれは必須ですね。
<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51484166" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51483946.html">
<title>１アプリケーション内で複数のマップを使用する場合</title>
<link>http://android.asai24.com/archives/51483946.html</link>
<description>以前、

１アプリケーションで複数のマップを使ってはダメらしい

という記事を投稿したが、
MapActivity毎にプロセスを割り当ててあげれば問題ない
との報告がメーリングリストにあがっていたのでメモ。


＜MapViewのロードが止まってしまう＞
http://groups.google.com/gr...</description>
<dc:creator>yoshike2</dc:creator>
<dc:date>2010-05-13T11:31:11+09:00</dc:date>
<dc:subject>Android</dc:subject>
<content:encoded><![CDATA[以前、<br>
<br>
<a href="http://android.asai24.com/archives/51427716.html">１アプリケーションで複数のマップを使ってはダメらしい</a><br>
<br>
という記事を投稿したが、<br>
MapActivity毎にプロセスを割り当ててあげれば問題ない<br>
との報告がメーリングリストにあがっていたのでメモ。<br>
<br>
<br>
＜MapViewのロードが止まってしまう＞<br>
<a href="http://groups.google.com/group/android-group-japan/browse_thread/thread/a8e563c548105fe2?hl=ja">http://groups.google.com/group/android-group-japan/browse_thread/thread/a8e563c548105fe2?hl=ja</a><br>
<br>
<br>
以前にこれが分かっていれば・・・。
<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51483946" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51483102.html">
<title>Viewの半透明化</title>
<link>http://android.asai24.com/archives/51483102.html</link>
<description>昨日公開した日中まっしゅだけども、様々なご指摘を頂いたのでもう3回もバージョンアップした。
v1.2→v1.3のバージョンアップではＵＩをダイアログにして、背景を半透明にした。

viewを半透明にする方法は他のアプリでも使えそうなので、ここにメモ。

viewの(半)透明化

r...</description>
<dc:creator>satoru_fu</dc:creator>
<dc:date>2010-05-11T15:26:31+09:00</dc:date>
<dc:subject>0からはじめるAndroid開発</dc:subject>
<content:encoded><![CDATA[昨日公開した日中まっしゅだけども、様々なご指摘を頂いたのでもう3回もバージョンアップした。<br>
v1.2→v1.3のバージョンアップではＵＩをダイアログにして、背景を半透明にした。<br>
<br>
viewを半透明にする方法は他のアプリでも使えそうなので、ここにメモ。<br>
<br>
viewの(半)透明化<br>
<br>
res/values/styles.xml<br>
<blockquote>&lt;?xml version="1.0" encoding="utf-8"?><br>
&lt;resources><br>
<br>
	&lt;drawable name="translucent_background">#44000000</drawable><br>
<br>
	&lt;style name="Theme.Transparent" parent="android:style/Theme.Translucent"><br>
        &lt;item name="android:windowBackground">@drawable/translucent_background&lt;/item><br>
        &lt;item name="android:windowNoTitle">true&lt;/item><br>
	&lt;/style><br>
&lt;/resources></blockquote><br>
として、<br>
AndroidManifest.xmlの透明にしたいActivityに<br>
<blockquote>android:theme="@style/Theme.Transparent"<br>
</blockquote><br>
を追加。<br>
<br>
ここではついでにタイトルも消して完全に見えなくしています。<br>
translucent_backgroundで指定されてる値の先頭の2桁(ここでは44)がアルファ値になる。<br>
<br>
<br>
<br>
ダイアログにXMLで記述したLayoutを適応したかったのだけども、どうもうまくいかない。<br>
LayoutInflaterを使えばできたのだけども、ボタンを配置したときにonClickListenerに登録する方法が分からなかった。<br>
アラートダイアログ使えばボタンはいらないので、今回はそれで実装。
<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51483102" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51482599.html">
<title>初アプリ初マーケット：日中まっしゅ</title>
<link>http://android.asai24.com/archives/51482599.html</link>
<description>アンドロイドのアプリ開発の勉強を始めて1ヶ月。
初めてアンドロイドマーケットにアプリを公開しました！

日中まっしゅ。

Simejiのマッシュルームアプリです。

http://www.cyrket.com/p/android/com.asai24.simeji.ja2zh/


・使い方
	
1.Simejiで日本語を入力する。
2-1....</description>
<dc:creator>satoru_fu</dc:creator>
<dc:date>2010-05-10T18:16:43+09:00</dc:date>
<dc:subject>0からはじめるAndroid開発</dc:subject>
<content:encoded><![CDATA[アンドロイドのアプリ開発の勉強を始めて1ヶ月。<br>
初めてアンドロイドマーケットにアプリを公開しました！<br>
<br>
日中まっしゅ。<br>
<br>
Simejiのマッシュルームアプリです。<br>
<br>
http://www.cyrket.com/p/android/com.asai24.simeji.ja2zh/<br>
<br>
<br>
・使い方<br>
	<br>
1.Simejiで日本語を入力する。<br>
2-1.未確定のままマッシュルームボタンをクリックする<br>
2-2.もしくは変換後、テキストエリアを長押しして「すべて切り取り」を選んでからマッシュルームボタンをクリックする<br>
3.ダイアログで日中まっしゅをクリックする<br>
4.「翻訳する」ボタンを押す<br>
5.すると中国語に翻訳されて表示されます<br>
<br>
<br>
翻訳ソフトとしての使い勝手はいまいちかもしれませんが、中国語の簡体字を入力したい時は便利かも。
<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51482599" width="1" height="1" />
]]>
</content:encoded>
</item>
<item rdf:about="http://android.asai24.com/archives/51477379.html">
<title>TextView EditText</title>
<link>http://android.asai24.com/archives/51477379.html</link>
<description>[XML Attributes]
TextView
EditText

android:autoLink = &quot;none | web | email | phone | map | all&quot;
自動でリンクを貼ってくれて、クリックできるようにしてくれる。

android:autoText = &quot;true | false&quot;
自動訂正

android:capitalize = &quot;none | sentences | word | chara...</description>
<dc:creator>satoru_fu</dc:creator>
<dc:date>2010-04-29T18:37:59+09:00</dc:date>
<dc:subject>Android</dc:subject>
<content:encoded><![CDATA[[XML Attributes]<br>
TextView<br>
EditText<br>
<br>
android:autoLink = "none | web | email | phone | map | all"<br>
自動でリンクを貼ってくれて、クリックできるようにしてくれる。<br>
<br>
android:autoText = "true | false"<br>
自動訂正<br>
<br>
android:capitalize = "none | sentences | word | characters"<br>
勝手に大文字にする<br>
<br>
android:digits<br>
数字のみの入力を受け付け、文字セットを指定<br>
<br>
android:drawableBottom | drawableLeft | drawableRight | drawableTop<br>
文字の上下左右にdrawable要素を配置<br>
<br>
android:drawablePadding<br>
その間隔<br>
<br>
android:editable = "true | false"<br>
そのテキストを編集できるかどうか TextViewだとデフォルトはfalse EditTextはtrue<br>
<br>
android:freezesText = " true | false"<br>
入力途中のテキストの内容を保持するかどうか<br>
<br>
android:gravity = "top | bottom | left | right | center_vertical ...etcetc<br>
要素をどこに寄せるか<br>
<br>
android:height | width<br>
テキストの高さと幅<br>
<br>
android:hint<br>
テキストが空の時にヒントを表示する<br>
<br>
android:textColorHint<br>
ヒントの色を指定<br>
<br>
android:inputType = "text | number | phone ...etcetc<br>
<br>
android:lines<br>
行数の指定<br>
<br>
android:singleLine　= "true | false"<br>
テキストを1行のみにする<br>
<br>
android:maxHeight | maxLength | maxLines | maxWidth<br>
テキストの高さの最大値、最大文字数、最大行数、最大幅<br>
<br>
android:minHeight | minLines | minWidth<br>
テキストの高さの最小値、最小文字数、最小幅<br>
<br>
android:numeric = "integer | signed | decimal"<br>
テキストを数値入力のみとする<br>
<br>
android:password = "true | false"<br>
パスワード入力形式<br>
<br>
android:phoneNumber = " true | false"<br>
電話番号入力方式<br>
<br>
android:scrollHorizontally = "true | false"<br>
横スクロールするかどうか<br>
<br>
android:selectAllOnFocus = "true | false"<br>
フォーカスしたときにテキストを全選択するかどうか<br>
<br>
android:shadowColor | shadowDx | shadowDy | shadowRadius<br>
テキストに影をつける<br>
<br>
android:text<br>
テキストの内容<br>
<br>
android:textColor | textColorHighlight | textColorLink<br>
テキストの色、選択されたテキストの色、リンクされたテキストの色<br>
<br>
android:textSize<br>
テキストサイズ<br>
<br>
android:textStyle = "normal | bold | italic"<br>
テキストのスタイル<br>
<br>
android:typeface = "noraml | sans | serif | monospace"<br>
テキストの書体<br>

<img src="http://counter2.blog.livedoor.com/c?ro=1&act=rss&output=no&id=3261957&name=android_asai24&pid=51477379" width="1" height="1" />
]]>
</content:encoded>
</item>

</rdf:RDF>
