タグ

ブックマーク / y-anz-m.blogspot.com (17)

  • Android バックグラウンドで Bitmap を処理する

    Processing Bitmaps Off the UI Thread の内容に補足を付けて解説してます。 前回のエントリーで大きい画像を効果的に読む込む方法を解説しましたが、デコードするデータがディスクやネットワークにある場合、BitmapFactory の decode* メソッドは UI スレッドで行ってはいけません(というかメモリ上以外のデータを読み込む場合は全部だめ)。 これらの処理はディスクやネットワークのスピード、画像のサイズ、CPUのパワーなどさまざまな要因で完了までの時間が変わり、いつ完了するのかわかりません。 もし画像のデコード処理で UI スレッドをブロックしてしまうと、最悪 ANR が発生します。 そこで、AsyncTask を使ってバックグランドで Bitmap を読み込むようにします。 ■ AsyncTask を使う 特に何も考えないで作ると、きっとこんな感じ

    iNo
    iNo 2014/05/08
    AsyncTask と ImageView
  • Android ループできる ViewPager (完全版)作った

    LoopViewPager github : yanzm/LoopViewPager - https://github.com/yanzm/LoopViewPager ループできる ViewPager です。 (Loop ViewPager, Looping ViewPager) 以前に How to create looping ViewPager というエントリーを書きましたが、不完全だったので、まともなものを作りました。 今回は制限なしです。 Support Package v4 の ViewPager の代わりに使うだけで OK です。 ViewPager から PagerAdapter の package private なメソッドを呼んでいるので、PagerAdapter, FragmentPagerAdapter, FragmentStatePagerAdapter は Lo

  • 「よりよいコードを求めて命名について頭をひねる会」のログ

    http://www.zusaar.com/event/438105 アプリケーションを作る英語 の著者の西野さんを交えて、クラス名とかメソッド名とか変数名とか命名で困っている課題を1つ以上持ち寄りみんなで一緒に検討する勉強会をしました。 「アプリケーションを作る英語電子書籍 http://tatsu-zine.com/books/english4app 紙 http://www.amazon.co.jp/gp/product/4844332848/ はじめに:西野さんからちょっとお話 The Art of Readable Code から第2章と第3章 第2章:名前に情報を詰め込むようにする どういう情報をつめこむか。 明確な言葉を選ぶ get は不明確らしい getPage(url) -> FetchPage(url) や DownloadPage(url) 特色のある(color

    「よりよいコードを求めて命名について頭をひねる会」のログ
  • Android Bitmap 読み込みのコードを github に公開しました。

    ・大きい画像を効果的に読み込む ・バックグラウンドで Bitmap を処理する ・Bitmap をキャッシュする をまとめて、DiskLruCache として Displaying Bitmaps Efficiently のサンプル BitmapFun.zip の DiskLruCache.java をベースにしたコードを github に公開しました。Google I/O 2012 のコードも参考にしています。 github - yanzm/ImageLoadLib - 特徴は API Level 4 から使えるようにしてあることです(BitmapFun や Google I/O 2012 のコードはそうなっていません)。 こんな感じで使います。 private ImageFetcher mImageFetcher; @Override public void onCreate(Bund

  • Android Fragment で setArguments() してるサンプルが多いのはなぜ?

    Fragment のサンプルでは、setArguments() を使って Bundle を介して値を渡している例を多く見かけます。 ① HogeFragment f = new HogeFragment(); Bundle args = new Bundle(); args.putInt("num", num); f.setArguments(args); とやるより ② HogeFragment f = new HogeFragment(num); や ③ HogeFragment f = new HogeFragment(); f.setNum(num); とかやった方がいいんじゃない? Arguments 介するのは面倒じゃない?なにがいいの? と思う人も多いのではないでしょうか。 そこで、Arguments がどういいのかを説明したいと思います。 1. Fragment のコンスト

    iNo
    iNo 2012/07/17
    setArgumentsについて
  • Android TextView の setTextSize() は sp 単位だよ!

    いままでも sp という単位が用意されていましたが、標準の設定アプリでシステムの文字スケールを 設定できないかったので、ほぼ dp と同じような振る舞いでした。 Android 4.0 の設定アプリではシステム全体の文字スケールが設定できるようになっています。 [Display] - [Font size] で、ここからが題。 TextView の setTextSize() メソッドの引数は sp 単位として処理されます。 --- public void setTextSize (float size) Set the default text size to the given value, interpreted as "scaled pixel" units. This size is adjusted based on the current density and user

    Android TextView の setTextSize() は sp 単位だよ!
  • Android resource で integer を定義する

    ► 2024 (4) ► 6月 (1) ► 3月 (2) ► 2月 (1) ► 2023 (6) ► 12月 (1) ► 7月 (1) ► 5月 (1) ► 4月 (1) ► 3月 (2) ► 2022 (17) ► 12月 (2) ► 11月 (3) ► 9月 (2) ► 8月 (2) ► 7月 (2) ► 5月 (2) ► 4月 (2) ► 3月 (1) ► 2月 (1) ► 2021 (46) ► 12月 (2) ► 10月 (1) ► 9月 (1) ► 8月 (3) ► 7月 (2) ► 6月 (5) ► 5月 (12) ► 4月 (7) ► 3月 (5) ► 2月 (7) ► 1月 (1) ► 2020 (44) ► 12月 (6) ► 11月 (5) ► 10月 (1) ► 9月 (1) ► 8月 (2) ► 7月 (2) ► 6月 (7) ► 5月 (4) ► 3月 (8)

  • Eclipse で Google URL Shortener API を使う

    Google IO の BootCamp の「Intro to Google Api」の簡単まとめ # BootCamp の Schedule # Google APIs Discovery Service Google URL Shortener API ログインした状態で http://goo.gl/ に行くと、自分が作った Short URL の一覧がみれる Details をクリックすると、解析結果がみれる --- Google API を使うには、API キーが必要 Google API Console で取得する 最初にプロジェクトを作成する 左側の Services をクリックして、使いたい Service を ON にする 左側の API Access をクリックして、API key を確認できる。 Eclipse に Google Plugin for Eclipse を

    Eclipse で Google URL Shortener API を使う
  • Android 複雑な文字列を xml で定義する

    Android では、文字列を res/values/strings.xml の中に定義します。 *別に strings.xml という名前である必要はありません。stringsForScreen1.xml など任意のファイル名が使えます。 例えば、eclipse で Android プロジェクトを作成した場合、 デフォルトで作られる strings.xml は次のようになっています。 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, MainActivity!</string> <string name="app_name">HelloWorld</string> </resources> この文字列にアクセスするには、例えば、 <TextView android:id

    iNo
    iNo 2011/03/20
    strings.xmlの書式
  • Android Eclipse から ProGuard を使ってみた。

    proGuard を訳そうかな、と思ったんだけど、 AndroidセキュリティAndroid 2.3(Gingerbread) SDKに標準搭載されたProGuardを試す - Android(アンドロイド)情報-ブリリアントサービス - によくまとまっていたので、補足的な感じにしました。 この機能を使うには ADT8.0.0 以上 + SDK Tools, r8 が必要です ■ proguard.cfg を作成 プロジェクトを作成するとこんな感じでホーム直下に proguard.cfg が自動で作成されます。 中にはデフォルトの設定が入っています。 ■ default.properties の設定 この proguard.cfg へのパスを default.properties に追加します。 構文は proguard.config=/path/to/proguard.cfg 絶対パ

    Android Eclipse から ProGuard を使ってみた。
  • Android カスタムタイトルバーを使う

    タイトルバーのレイアウトを XML で定義することができます。 setContentView の前に requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); で宣言し、setContentView のあとにXMLファイルを getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); で指定します。 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.viewer2

    Android カスタムタイトルバーを使う
  • Android Improving App Quality

    ざっとまとめてみました。 http://android-developers.blogspot.com/2010/10/improving-app-quality.html 1. Listen to your users ・ Android Market にはユーザーとデベロッパーの双方向のコミュニケーション方法が提供されていないので、自分でサポートを用意すべき。例えば、 Google Group, Zoho Discussions, getsatisfaction.com, uservoice.com などのすぐれたツールを使うことができる。もし、このようなツールを使ってサポートを始めた場合、ここへのリンクを Android Market やアプリ内に入れること。 ・ public beta や trusted tester program をする方法もある。website に apk

    iNo
    iNo 2010/10/25
  • Android SearchManager 検索ボックスを使うぜ!

    Gmail アプリで menu から検索を押すと、上にニュッて検索ボックスがでてきます。 ちなみに、検索ボタン(ハードのボタンね)を押しても出てきます。 エミュレータだと F5 です。 こんなやつ。過去の入力が候補として出てきてくれます。 これを実装してみたので方法をまとめておきます~。 公式な reference はこちら http://developer.android.com/intl/ja/reference/android/app/SearchManager.html Quick Search Box については、こちら http://android-developers.blogspot.com/search/label/Quick%20Search%20Box これの大事なところをピックアップしつつ訳しました。。。が、長いので ようはまとめると ここのまとめが全部を含んでいま

    Android SearchManager 検索ボックスを使うぜ!
    iNo
    iNo 2010/09/29
    google検索テキストボックス
  • Android Preference の summary を動的に変更

    Preference を使った設定画面で、今設定されている 値が summary に出るとユーザーフレンドリーですよね。 summary というのは、PreferenceActivity の設定画面で、 設定項目の下に少し小さい文字で表示される領域です。 Libraroid の設定画面だと、「和書」「キーワード」 「キーワードに関連」などのが表示されるところが summary です。 選択された値によって、この summary に表示される 文字を変更するにはこんな感じで実装します。 PreferenceActivity で Preference searchbooksPref; final static String SEARCHBOOKS_KEY = "searchbooks"; Map<String, String> searchbooksMap = new HashMap<Stri

    Android Preference の summary を動的に変更
  • Android UI Design Tips

    UIを意識すべきなのはどうして? 良いUI → ユーザーが洗練された質に気が付く → 評価が良くなる → アプリのランキングが良くなる → さらにたくさんのインストール&購入につながる ■ Agenda 1. やるべきことと、やっちゃいけないこと 2. デザイン哲学と考慮すること 3. 絶対に使うべき UI framework の機能・特徴 4. 新しい UI デザインパターン 5. アイコンとガイドライン ■ やるべきことと、やっちゃいけないこと * やっちゃいけないこと ・単に他のプラットフォームのUIを移植しない! ・ユーザーがプラットフォームとアプリが合っていると感じるべき ・アプリのブランドとプラットフォームとのバランス ・modal progress と確認用ダイアログを使い過ぎない! ・柔軟性を持つ!(absolute-positioned layout はダメ) ・px

    Android UI Design Tips
  • マップアプリを開いてから GPS を on にする方法

    電池の持ちとかのために普段はGPSをオフにしているんです。 で、いざ勉強会とか打ち合わせとかに移動するためにマップアプリ (Map, 地図アプリ)を開いてから、「あ、GPSいれてない!」 となることがまぁよくあるんです。 GPS を入れるためには、一度マップを閉じるなり、ホームキーを 押すなりしてホーム画面に戻って、設定から変更するか 電源管理ウィジェットのある画面まで移動しないといけないのです。 めんどい。 # ポリシーでマップと電源管理は別の画面に配置しているのです # http://y-anz-m.blogspot.com/2010/08/home.html マップアプリからどーにかならないかと色々MENUとか見てみましたが なにもなし! そこで気づきました。 「あ、Notification Bar (通知バー) ならマップアプリ開いた状態でも別のアプリ開けるじゃん!」 そこで No

    マップアプリを開いてから GPS を on にする方法
    iNo
    iNo 2010/08/06
  • Android ColorPickerDialog を作った

    Android にはユーザーに色(Color)を選択してもらうための デフォルトのUIが用意されていません。 ApiDemo のなか(com.example.android.apis.graphics) には ColorPickerDialog.java があるのですが、 選択できるのは色相だけです。 なので、彩度と明度も選択できるように カスタマイズした my ColorPickerDialog を 恥ずかしながら公開します。 HSV色空間 by wikipedia Dialog を継承したクラスなので、こんな感じで使います。 第1引数は Context, 第2引数は色が選択された時の listener, 第3引数はダイアログに渡す初期色です。 int selectColor; ColorPickerDialog mColorPickerDialog; mColorPickerDialo

    Android ColorPickerDialog を作った
  • 1