サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
noxi515.blogspot.com
android.preference.DialogPreferenceを利用してちょっと遊んでみた。 WeatherNow 1.6だか2.0だかではAppWidget背景の透過率を従来の10%単位から1%単位での設定に変更します。設定画面でPreferenceクリックしたらダイアログ出して、ダイアログの中でシーク+ボタン+直接入力で透過率設定出来たら便利だよね?!ってことで作ってみた。 DialogPreferenceを継承する上で重要なDialogの表示部分ですが、Androidのソースコード(4.0.1)ではこんな感じになってます。 ダイアログの表示部分自体を変えたければこのshowDialogを、ダイアログで表示する中身を変えたければonPrepareDialogBuilderを、ダイアログが閉じられたときの挙動を変えたければonClickやonDialogClosedをオーバーライ
ちょっと興味があって調べてみた。 結論としては 他のパッケージのクラスファイルは読み込める セキュリティー的に問題あるんじゃね? 某ブログには SharedUserIdを共有して 共有Contextを作成すればできる なんて書いてあるけどこれは嘘。以下、その方法 まずAndroidの標準的なリソース共有方法であるContextの共有から調べてみた。 これでClassを作成しようとすると怒られます。 。。。ん? この部分が怪しい。 と言うわけでdalvik.system.PathClassLoaderをちょっと見てみると、 mDexとかmZipとか、何となくAPKパッケージを探していそう。コンストラクタを見てみると ビンゴですね。「:」で第一引数を区切ってそこからdexファイルを取得しようとしています。 PathClassLoaderを生成するときの第一引数はクラス名ではなくAPKファイル名
子Viewの実装の有無に関わらず、親となるViewGroupでタッチイベントを取得したい時ってありますよね。 そんな時に便利なのがViewGroup#onInterceptTouchEventというメソッド。 これを利用するには下のサンプルのようにViewGroupを継承した独自ViewGroupクラスを作成し、その中のonInterceptTouchEventを上書きする必要があります。 ひとまず流れだけ。 ちなみにこれをXMLから指定する場合は こんな感じで使います。
WeatherNowでは次バージョンでアメダス・天気情報をデータベース化します。 実際に作って試してみたところアメダス情報79レコードで16KBとなり、将来的に内部ストレージに保存するにはちょっと厳しくなる。なのでSDカード上にデータベースを作ってみました。 *ここに載せているコードは実際のコードではなくブログ用に手打ちしています。ミスがあるかも知れませんが悪しからず。 先にこちらの記事から読んで下さいな。 まずは失敗コード。 このサイト様を参考に作ったのですが、これを実際に使ってみると java.lang.IllegalArgumentException: File /sdcard/weathernow/database/weathernow_database.db contains a path separator と怒られてしまいました。ちなみにTargetAPIは7です(Andro
WeatherNow 1.0.5ではAppWidgetの背景画像の透過率を自由に設定していますが、その方法の解説です。 いつも不思議に思っていたのですが、一部アプリのAppWidgetで「背景画像の透過率を設定で変更できる」ものがあります。普通のActivityですと (レイアウトxmlの一部) (Javaファイルの一部) とやれば一瞬で終わる話なのですが、AppWidgetに何か表示するにはRemoteViewを挟まねばなりません。AppWidget上のImageViewに表示させるにはRemoteViewの「setImageViewResource」や「setImageViewBitmap」が提起されていますが、「setImageViewAlpha」的なものが存在しないため、透過率を直接設定することは不可能です(多分)。そこで今回はResourcesに仕込んだイメージファイルをBitm
このページを最初にブックマークしてみませんか?
『noxi515.blogspot.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く