Android

FileProviderのの罠

FileProvider.java if (TAG_EXTERNAL_CACHE.equals(tag)) { File[] externalCacheDirs = ContextCompat.getExternalCacheDirs(context); if (externalCacheDirs.length > 0) { target = externalCacheDirs[0]; } } file_paths.xml に設定された external-cac…

Android 8.0 で java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0

Previewのときからクラッシュレポートが来ていたけど、何が原因かわからず困っていた件が、やっと解決したので超久しぶりに日記に。 問題のエラー。 Fatal Exception: java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0 at android…

Androidをマウスで操作したときのMotionEventのメモ

API Level 14 から MotionEvent#getButtonState() でどのボタンが押されたか取得できる。 ボタンを押して、マウスを移動して、ボタンを放したときのイベント。 操作 action buttonState 左ボタンを押す ACTION_DOWN BUTTON_PRIMARY マウス移動 ACTION_MOVE B…

Bundle の putSerializable() で List や Map や CharSequence を実装したオブジェクトを渡すのはやばい

今まで気付かなかった...orzBundle の putSerializable() で List や Map や CharSequence を実装したオブジェクトを渡すと、永続化するときに元がどんなクラスであろうが List を実装していれば ArrayList に、Map を実装していればは HashMap に、CharSequ…

Android 4.0〜4.2 でTextViewの singleLine とか maxLines を設定するとテキストや背景がずれて、テキストが上寄りに見える

ボタンのテキストが上に寄っているマヌケなアプリを見かける理由はフォントの問題だと思っていたけど、違っていたみたい。 singleLine=true とか maxLines で行数を指定すると、テキストや background の位置がずれて困る。

内部ストレージとSystemストレージ

内部ストレージが1GBくらいあれば、ゲームとかしないかぎり不足することは無いですな! と思っていたら容量不足に。 「設定→アプリ」を見ると 476MB の空き容量があるように見えるけど、「設定→microSDと端末容量」を見ると空き容量は 114MB という表示。 わ…

Android 4.0以降でテキストの表示がとても遅くなる件

Android 4.0でハードウェアアクセラレーションが有効な状態で、たくさんの文字種を表示するとパフォーマンスが激しく悪くなる件。 テスト用のAPK。Android 4.0以降用で試してください。(4.0未満だと意味がありません) ListViewTest_20121005.apk 0〜100行目…

Nexus 7

会社の人が買っていたのでスルーしていたけど、日本でも普通に買えるようになったので注文。 香港から発送されたみたいだけど2日で到着。 背面カメラがないとか、バイブレータがないとか、ディスプレイがいまいちとか、メモリカードがささらないとか、微妙に…

Android 3.0未満でHD(1280x720以上)の端末

Android 3.0未満で1280x720以上の解像度の端末を調べたのでメモ。思ったよりたくさんあってびっくり。 Android 4.0 へのアップデートが提供されているものを除く。 au Galaxy S 2 Arrows Z ISW11F DoCoMo SH-06D NERV SH-06D L-01D N-04D N-05D N-06D SC-05D…

IS03

IS03 も購入。 この時のメモリ液晶ってこんなに汚かったのか。 動きは悪いですな。 これでも Desire の半年後なんですな...。

ISW11Mのバグ

某アプリの問題の調査のために中古で購入。 なかなかの糞端末ですな。T-01C 並みの...。 で、報告されてる問題を試してみると本当に再現した。 com.android.camera.action.CROP で画像をクロップすると結果が MediaStore.EXTRA_OUTPUT で指定した場所に出力…

音量ボタンでスリープが解除されてしまう件

REGZA Tablet の音量キーを押すとスリープが解除されてしまい困っていたが、どうやら REGZA Tablet 以外でも発生するみたいで、画面ロックを「なし」にするとそうなるみたい。とりあえず手元の端末で試した結果。 スリープが解除されてしまう REGZA Tablet A…

IS15SH の ViewConfiguration#getScaledTouchSlop() が 24 の件

Google+に書いたことのコピペ。 IS14SHからIS15SHに乗り換えて速度的にはだいぶ良くなったけど、タッチのつもりがフリック判定されまくって困る。 ViewConfiguration#getScaledTouchSlop() でスクロールするまでのピクセル数を取得してるけど、4.3インチ480x…

SHARP IS15SH(au)のListViewがカーソルキーでまともにスクロールできない

なんかヘンな動きしてるなと思ったら、ListViewより大きいViewが入ってるとカーソルキーでのスクロールがまともにできないみたい。 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ListView lv = new Li…

Library Project の R.java のフィールドに final が付いてた

ADT 14 から Library Project の R.id.* とかに final がつかなくなって、switch-case を if-else に書き換えさせられたけど、今生成された R.java を見ると final がついますな。 これも ADT 20 から?どうも勘違いだったみたい...。

ADT 20 でRelease用にビルドして設定を開いたらクラッシュする件

PreferenceActivity から PreferenceFragment を継承したクラスをロードするところで...。 AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx/xxx.activity.TabletSettingActivity}: android.app.Fragment$Instantia…

Fragmentが追加されたり削除されたりしたときに何かする

Fragment といっても本物じゃなくて android.support.v4.app.Fragment のほう。 たとえば、ActionBar を自作しようと思ったときとか必要かも。 FragmentActivity#supportInvalidateOptionsMenu() ここらへん使うとよさげ?

Activityのアニメーションの制御

ひとつのActivityから複数のActivityを順番に呼び出すとき。 A から B を呼び出す B が結果を返す A から C を呼び出す C でBACKが押された A から B を再び呼び出す 今作ってるアプリで、5 番目の画面遷移が Close ではなく Open のアニメーションになって…

HTC One S

Galaxy Nexus があまりにもカクカクしすぎなので、ほかの Android 4.0 以降の端末が気になってたので購入。 Galaxy Nexus と違ってCPUが Snapdragon S4 というやつで、ベンチマークでは Galaxy Nexus よりだいぶ良いって話だったので期待していたんだけど、…

7インチで1280x800の端末

7インチで高解像度の端末が無かったので購入。 density は 1.3312501 。 この端末もなぜかドットバイドットでスクリーンキャプチャが撮れなくてボケてる。たまにこういう端末があるけどなんなんだろう...。 このスクリーンショットではわかりにくいけど、マ…

Galaxy Nexus で下に MENU ボタンを表示する

targetSDK >= 11 だと MENU ボタンが出なくなるけど、Galaxy Nexus で requestWindowFeature(Window.FEATURE_NO_TITLE); としたところ MENU ボタンが出てきた。当然 ActionBar もでない。(targetSDK >= 14 だと出ない) 残念ながら Android 3.1 と 3.2 ではこ…

Xperia ray は ListView に設定した Selector の TransitionDrawable が再生されない

ray で実装してたら再生されなくてハマってたんだけど、問題が起こるのは Xperia ray だけだった。 確かに ray では他のアプリでも、長押しのアニメーションが再生されるの見たことがない。

PorterDuffColorFilter

一覧があるといいなと思って。 http://github.com/gaeeyo/ColorFilterTest

HTC の EVO ISW11HT

たとえば Xperia ray(Android 2.3.3) だと、スクロール中なんかに D/dalvikvm( 2061): GC_CONCURRENT freed 208K, 47% free 5490K/10247K, external 3704K/4626K, paused 3ms+11ms D/dalvikvm( 2061): GC_CONCURRENT freed 1108K, 55% free 4711K/10247K, ex…

Xperia ray で BackgroundColorSpan の色が出ない

BackgroundColorSpan で指定した色が出ないのであれこれ試していたら、TextView#setLineSpacing() で行間を設定するとダメらしい。 float add = 1f; // ここで 0 以外を指定するとダメ float mult = 1.1f; // ここで 1 以外を指定するとダメ TextView#setLin…

いろんな端末の画面遷移のアニメーション

ブランド 機種 OS アニメーション SHARP IS01 1.6 横(中) SHARP IS11SH 2.3 横(速) HTC Desire 2.2 横(中) Google Nexus S 2.3 横(中) au XOOM 3.1 ズーム Sony Ericsson Xperia ray 2.3 ズーム Huawei IDEOS 2.2 横(中) Creative ZiiO 2.2 横(中) 最近買っ…

IS01 でオレオレMenuItem

MenuInflater に inflate させたオレオレMenuが IS01 に限ってクラッシュするようで...。 E/AndroidRuntime( 5690): Uncaught handler: thread main exiting due to uncaught exception E/AndroidRuntime( 5690): java.lang.AbstractMethodError: abstract m…

Xperia ray

IS01、Desire、Nexus S、Ziio、IDEOS、XOOM、IS11SH に続いて、Xperia ray を購入。 画面に触れる前から反応するNexus Sに比べると、Xperia rayはしっかりタッチしないと反応しなくてタッチが空振りしまくり。 ウィジェット(UIの部品のほう)のデザインがいま…

SharedPreferences は結構簡単に壊れる

ちょっと前に Google+ に書いたけど、こっちにも。 Android開発者が大好きで信頼も厚い SharedPreferences が、意外と簡単に壊れる件。 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); Editor editor = prefs.edit(); …

SHARP端末はSDカードへのインストールを許可していないアプリも、SDカードにインストールできる

「何をいまさら...」という話かもしれないけど、さっきまで知らなかったもので。 AndroidManifest.xml で install-location を指定しない場合は、内部ストレージにインストールされるものと思い込んでいたけど、IS11SH を使ってみるとSDカードへのインストー…