サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
デスク環境を整える
superdry-2.hatenadiary.org
Gingerbreadからか出るようになった、語句を選択するときに出るハンドル?スライダー?カーソル?何とよぶのかわからないですが、あのブツの見た目がちょっとあきてきたので変えてみたメモです。 手順 画像は3つからなります。それぞれ新しい画像を用意してdrawableフォルダに配置します。 new_text_select_handle_left.png new_text_select_handle_right.png new_text_select_handle_middle.png 以下のようなstyles.xmlを作成します。Android標準のThemeを継承したカスタマイズテーマMyThemeを作ります。 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.MyTheme" parent="an
本エントリは、「Android Advent Calendar*1」という企画の1エントリにもなっています。他にも色々楽しいエントリが上がる予定なのでこちらの方もチェックしてみてください☆ Google Web Fonts APIってなに? Google Web Fontsとは、Googleが提供するWeb Fontのホスティングサービスです。本日時点で、欧文フォントで302字体あります。ざっとこんな感じ。こんな種類の多いのでAndroidでも使ってみたくなってきますよね。 Androidで使ってみる。 Google Web Fonts は Android 2.2 以上対応となっています。通信が発生するのでパーミッションも必要です。AndroidManifest.xmlに追加します。 <uses-sdk android:minSdkVersion="8" /> <uses-permissi
下記ブログ記事の内容をそのまま転載します。長くて見づらかったのでコンパクトにした。 Official Usability, User Experience & User Interface Guidelines From Companies - Usability Geek Adobe Adobe Flex UI Design and RIA Workflow Apple Mac OS X User Interface Guidelines Mac OS X User Experience Guidelines iPhone & iPad (iOS) User Interface Principles Blackberry Blackberry Browser Content Design Guidelines (PDF) User Interface Guidelines for Bla
古い記事(2011年5月)ですが下記リンクからピンポイントなとこをまとめメモ。ユーザの操作とかは日本ではちっと違うなーてとこもありますが、おおむね役立つと思います。 10 Tips For Android UI Design 1.起動画面の体験性 以下のポイントが2、3秒で理解できるようにしないとダメ。 ココはどこで ココでは何ができて ココからさらに進んだところで何ができるか ユーザはアプリを理解するために時間を使いたがらない。マニュアルなんておいても見ずに何かのボタンを押してしまう。 上記のGowallaの画面では、パスポートがゆっくりと開いたあと、自分の個人情報に素早くアクセスでき、簡単なサジェスチョンとそれ以降のアクションと通知を表現している。 2.全ての入力には価値がある 端末が本当はどのように使われているかを確認する。 ほとんどの場合、親指1本で操作している時間がほとんど*1
Android developers blogがまた更新されてました。androidでのhttpクライアントについてです。メモがてらざっとまとめます。ネットワークについては弱く用語にも疎いのでおかしな言い回しがあったら 各リンクで原文の方を確認してみてください。 Android Developers Blog: Android’s HTTP Clients 端的に言うと、Ecrair/Froyoの場合はApache HTTP Clientが、Gingerbread以降はHttpURLConnectionがおすすめのようです。 AndroidのHTTPクライアントの使い分け HttpURLConnection と Apache HTTP Clientの2種類あってこれをどう使い分けるか。 Apache HTTP Clientについて DefaultHttpClientとAndroidHttp
Android Developer Blogに新しい記事がのってました。いつもは適当ながら最初から最後まで翻訳するんですが、今日は時間がないのでざっとピンポイントにしてみました。おかしなところは下記の参照元リンクより確認してください。 Android Developers Blog: Preparing for Handsets 今回は「次バージョンであるIce Cream Sandwichがきたとき、タブレット専用アプリでも対応が必要だよ。いきなりリリースされてもビビらんように、ちゃんとタブレットだけで動作するようにし、また事前にスマートフォンに対応しやすいようにしときましょうね。」という話です。 タブレット専用アプリが、タブレットとスマートフォンと両対応させるためのポイント Honeycombがタブレット専用なので、アプリもタブレット専用に作ってるものが多い。けど、もうすぐIce Cr
SDKバージョンをみてHoneycombかどうか、画面サイズを見てタブレットかどうかでチェックをする。よく忘れてぐぐるのでここにメモ。 public static boolean isHoneycomb() { // Can use static final constants like HONEYCOMB, declared in later versions // of the OS since they are inlined at compile time. This is guaranteed behavior. return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB; } public static boolean isTablet(Context context) { return (context.getR
ちょっと興味深かったので勉強メモがてら、てきとう翻訳してみました。十分に理解してるとは言いがたいので訳に変なとこがあったらご指摘ください。 Android Developers Blog: Custom Class Loading in Dalvik 今回の記事ではFred Chungさんという方が書いているのですが、最後の方書くの飽きちゃったのかかなり投げ出した感がありました(笑)。Android Developer Blogって毎回書く人が違うんですが、毎回その人なりの個性がでててとても面白いです。 Dalvikでのカスタムクラスローディング DalvikVMは開発者にカスタムクラスをロードできるようにしています。デフォルトの位置からDalvik実行可能ファイル(dexファイル)をロードするかわりに、アプリが内部ストレージまたはネットワーク越しからロードすることが可能です。 このテクニ
Android開発環境にMacつかってると面倒なドライバのインストールとかいらないのでほんと超便利なのですが、ごくごくたまにUSBデバッグができない端末に出会うときがあります。具体的には以下のような状態です。 端末側ではUSBデバッグモードになっている ターミナルでadb devicesしても端末リストに現れない こういう状態の場合、この端末のUSBベンダIDがサポート外である可能性が高いです。サポート外の場合、対象のUSB vender IDを調査し、明示的に登録してやる必要があります。USB vender IDを調査するには、Max OS Xではターミナルから $ system_profiler SPUSBDataTypeとすると現在接続中のUSBの情報を取得できます。ここで調べたUSB vender IDを$HOME/.android/adb_usb.iniに記述し、adbサーバを再
AndoridのApplicationオブジェクトにも4つのhandlerがあって、それぞれオーバーライドすることもあるのですが、今まで適当にしか理解してなかった。これを機にきちんと理解し直してみました。 onCreate Applicationの生成時に呼ばれる。 ここでアプリケーションのシングルトンを初期化する ここでアプリケーションの状態変数や共有リソースなどを生成したり初期化したりする。 onTerminate Applicationオブジェクトが終了するときに呼ばれる。 確実に呼ばれる保証はない。 他のアプリのためにリソースを解放する目的でkernelから終了させられる場合は、Warningも出さずonTerminateも呼ばれずプロセスは終了される。 onLowMemory リソースが逼迫してる状況で、メモリを解放するタイミングを提供するメソッド。 一般的にはバックグラウンドで
初心者の人に教えるにあたって、Activityのライフサイクルをどう説明したらいいかで迷ってたのですが、ちょっといい説明があったのでメモってみました。 Activity Stackの図 Activityは以下のようなスタックで管理されている。 状態 Active ActivityがActivity Stackの一番上にある。 最前面のvisibleでfocusedでユーザ入力を受けられる状態。 Systemからkillされる優先度はPausedより低い。 Paused ActivityがActivity Stackの一番上にある。 visibleだけどfocusは当たってない状態。例えば透過Activityやフル画面でないActivityが対象のActivityより上に表示された場合など。 unfocusedなのでユーザ入力は受け付けられない。 この状態でシステムからkillされることは滅
入力時にはEditTextにフォーカスがあたりソフトキーボードが起動しますが、その挙動に影響されて、以下のようにEditTextがつぶれて使いづらくなることがあります。意外とリリースされてるソフトでも結構見かけます。 こういうレイアウトで、 文字入力しようとすると…あらら 変換候補が表示されたあかつきには…ぐぬぬー 対処方法 このような場合、色々な対処法がありますが、ソフトキーボードの表示/非表示を検知してレイアウトを変えるというのも一つの手です。現状ソフトキーボードの表示/非表示を検知するようなAPIはありません。一般的にはカスタムViewを作成しその縦幅からソフトキーボードの表示/非表示を判断し、レイアウトを変更するのが通例のようです。意外と簡単なのでココにメモします。 構成 /src/org/superdry/sample/gui/DetectableSoftKeyLayout.ja
AndroidのSDKにはいろんなツール類が付属されていますが、Androidのレイアウトxmlファイルの最適化を検証するlayoutoptについては、意外に使っていない人が多かったので紹介します。以下のAndroid Developerのページにも説明があります。 http://developer.android.com/guide/developing/tools/layoutopt.html Layoutの最適化はパフォーマンスに直結するのでとても大事です。 不必要なLayoutを使うことはさける 大量のViewをつかうことはさける(View80個が目安) 階層が深くなりすぎることをさける(10階層ぐらいが目安) 最適化すべき箇所を指摘してくれるツールが、layoutoptです。layoutopt自体はSDKのホームディレクトリの下のtoolsフォルダに入ってます。使い方はターミナル
テーブルから落としたNexus Sの液晶にひびが入ってしまいました。えぐえぐ。 まずは修理の可能性。iPhoneやせめてNexusOneなら液晶交換修理してくれる店舗は多いのですが、日本未発売のNexusSはどうだろう。いろいろお店を教えていただいた中、以下三社にだめもとで連絡を取ってみました。 電脳中心買物隊 → 修理OK SMART → 修理OK アンドロイドドクター → 修理NG しかし非常に修理代が割高。また、先にご自身で液晶交換された @weboo さんのブログ記事もあったことから、わたしも自分で液晶交換してみることにしました。まずはebayでNexus Sの液晶部分だけを入手しました。$148ぐらいでした。 その他参考にしたサイトは以下の通りです。 http://weboo-returns.com/blog/nexus-s-diy-repair/ Nexus S Teardow
位置情報系のアプリは多いものの、位置情報取得のベストプラクティスが今まであまりなかったですが、Android Developer Blogで Deep Dive into Locationと題した記事が出ていました。個人的に超待望の記事だったので、てきとう翻訳してみました。 http://android-developers.blogspot.com/2011/06/deep-dive-into-location.html いつものとおりてきとうなので、変な訳がありましたらツッコミをお待ちしています。今回の記事の著者はGoogle I/Oでも何回か登壇してたイギリス紳士Reto Meierさんですが、原文もキャラがでてる文章なので、できれば原文やGoogle I/Oのyoutubeなどもあわせて見てみると楽しいと思います。ちなみにものすごく訳しにくかったです(笑)。 位置情報ベースのアプリ
例えば、IMEI(端末識別番号)などは、ダイアラーから「*#06#」と入力すると表示されます。こんな感じに。 この「*#06#」のようなものがAndroid secret codeです。シークレットコードは、このIMEI表示のようにフレームワークで予約されたものもありますが、自分で作ることもできます。ダイアラーで「*#*#」で始まり「#*#*」で終わるコードなら、Broadcast Recieverで拾える仕組みがフレームワークで用意されてます。自分のアプリに隠し機能やイースターエッグ、あとデバッグモードへの切替機能をつけたい場合などにつかえます。 実装方法 シークレットコード「*#*#5963#*#*」を入力したら、秘密の画面を開くようなサンプルを作るとします。 AndroidManifest.xml MainReceiver.java …シークレットコードを拾うReceiver Sec
Google I/O行って、ADK(Android Open Accessory Development Kit)を貰ってきました。さっそくサンプルDemokitを動かしてみたので、Mac上での動かし方のメモを残しておきます。ココを見ながらやりました(2011年5月20日時点)。変な表現などあればご指摘ください。 (2011年5月21日追記。もらいたての場合、ファームウェアは既に書き込んであるため、手順3〜5は省略できます。@zaki50さんに教えていただきました!) (2011年5月25日追記。ファームウェア焼かないとタッチセンサーが効かないです。手順を省略せずにファームも書き込むことをお勧めします) 大まかな手順 1. Auduinoのソフトウェアをダウンロード&インストール 2. ADKパッケージをダウンロード&解凍 3. CapSenseライブラリをダウンロード&解凍 4. Ard
AndAppStoreの名前が思い出せず、サードパーティ製マーケットの名前をtwitter上で聞きまくったことがありました。そのとき教えてもらった他のサードパーティ製マーケットが意外と多かったのでリンク集としてまとめておきます。 キャリア ドコモマーケット au one Market メーカー http://shop4apps.motorola.com/web/inter_web/home http://www.camangimarket.com/index_jp.html 和モノ andronavi アンドロイドアプリ情報サイト[アンドロイダー] おすすめアプリや格安SIMとスマホの比較サイト オクトバ http://www.applizoo.com/ スプートニクス通販ショップ〜SPUTNICKS〜【クーポン】 ANDROAPP.JP 洋モノ AndroLib, Android搭載ケー
日本でも、Xoom、Optimus padなどのHoneycomb端末が発売されましたし、そろそろ重い腰を上げてHoneycomb対応しなくてはいけない雰囲気になってきました。というわけで、HoneycombのUIの要となるAction BarのカスタマイズについてAndroid developer blogの記事を適当翻訳したので、メモがてらおいておきます。寝ぼけながら訳したので変なところがあるはず…ご指摘ください。 Android Developers Blog: Customizing the Action Bar Action BarのUIデザインパターンについて過去に紹介してから、その使い勝手からたくさんのアプリで採用されてきました。Android 3.0(Honeycomb)では、タブレット端末などで余分の広くなった領域を有効利用するために、このUIデザインパターンは標準となっ
よく使いそうなのでメモ。PreferenceActivityで、実際の設定値をSummaryに表示したい場合のOnPreferenceChangeListenerの実装。Summaryに表示するのにnewValueはユーザの意識しない値(entryValue)なので不親切。これをそのまま表示せずに選択した値(entry)をSummaryに表示する。 こんな感じに表示したい場合、設定値が変わったときに拾うリスナー(OnPreferenceChangeListener)を以下のようにOverrideする。 // 設定値をSummaryに表示 OnPreferenceChangeListener defalutSummaryListener = new OnPreferenceChangeListener() { @Override public boolean onPreferenceChan
Android Developer BlogのRenderscript Part2を読み途中で地震にあいました。やっと落ち着いてきたのでとりいそぎ更新します。いつものとおりてきとう翻訳なので訳に変なところがありましたらご指摘をいただければなと。 Renderscript Introduction*1で、この技術について簡潔に述べましたが、今回は「演算」をよりクローズアップして説明します。Renderscriptで「演算」とは、単一もしくは複数の異なるプロセッサのどちらで実行させてもいいように、DalvikコードからRenderscriptコードへデータ処理を委譲することを意味します。 Renderscriptの設計目標 Renderscriptは3つの目標があります。 (1)移植性 アプリのコードは、根本的に異なったハードウェアでも、全てのデバイスにアクセスできることが必要です。ARM系で
元サイトはこちら→http://developer.android.com/intl/ja/resources/tutorials/views/hello-gridview.html GridViewはスクロール可能な二次元の格子状に項目を表示するViewGroupです。 格子に表示するアイテムは、ListAdapterを使用することで自動的にレイアウトに挿入されます。以下のチュートリアルでは、画像のサムネイルのGrid上にならべ、画像が選択すると画像の位置をToastで表示するものを作成していきます。 1.HelloGridViewという新しいプロジェクトを作成。 2.res/drawableの下に表示したい画像をコピー。 3.res/layout/main.xmlファイルを開いて、以下を挿入。 <?xml version="1.0" encoding="utf-8"?> <GridVi
Javaの知識が1.4で止まっているので、勉強がてらEffective Javaを読もうと思ったけど、体力的にきついので先行者のまとめも読むことにした。 Effective Java 読書会 1 日目「static メソッドの使い方などなど」 - IT戦記 Effective Java 読書会 2 日目 「equals night」 - IT戦記 Effective Java 読書会 3 日目「それ Apache Commons で出来るよ」 - IT戦記 Effective Java 読書会 4 日目「最近はあまり継承とか使わないらしい」 - IT戦記 Effective Java 読書会 5 日目 「最後に見せたツンデレ」 - IT戦記 Effective Java 読書会 6 日目 「ジェネリクス!」 - IT戦記 Effective Java 読書会 7 日目 「PECS! PEC
今回、「Google Androidプログラミング入門 改訂2版」を著者の方から献本いただきました。ありがとうございます。伝説の青本(Google Androidプログラミング入門)から約3年、やっと改訂版が出版されました。私がAndroidをはじめたころ、主に青本で体系立てて勉強してきたところもあるのでとても懐かしい気持ちで読みました。 対象読者は初級技術者向けとなっています。ですが、どちらかというとアプリを初めて作る人向けというよりかは、Android技術者として名乗るのに最低限知っておくべきことがまとめられています。逆にこれがわからないとちょっと…という絶妙なバランスの内容になっていると思いました。 ソースコードも全行載っている訳ではありません。なので、サンプルコードをダウンロードするか、本文中のコードの行間を読む必要があります。またすべて説明がある訳ではないので、APIを調べながら
Androidアプリ開発においてCIツールHudsonで分散ビルドするようにするプロジェクトは多いと思うんですが、署名自動化についてメモ。(今はJenkinsですね。でも以下はHudsonですすめたいと思います) Build Secret Pluginについて アプリをAndroidマーケットから配信するためにはリリースモードでコンパイルして作成されるAPKファイルに秘密鍵の署名で署名する必要があります。これは keytoolで秘密鍵を生成し、jarsignerで署名する手間が発生します。けどHudsonには「Build Secret Plugin」という便利なプラグインがあって、これは秘密鍵と秘密情報をzipファイルで圧縮してHudsonサーバへアップロードすることで、APKファイル作成の都度の署名するとかのめんどくさい手順が省けます。 前提 ここでは以下の名称での例を示します。適宜読み
RenderScriptというGPUで高速描画処理をさせるグラフィックエンジンがあります。2.0時代からLiveWallpaperとかで@hideで使われていたようですが、Honeycombから大々的に一般開発者にもAPI公開されるもよう。そのRenderScriptの紹介がAndroid Developer Blogにのっていたので、てきとう翻訳してみました。 あんまり詳しくないので間違いは指摘してください。 Android Developers Blog: Introducing Renderscript RenderScriptはハイパフォーマンスな3Dレンダリングと演算処理をターゲットとした新しいAPIです。Android開発者へローレベルでかつ高性能なAPIを提供することが目的に用意されました。対象者はアプリの性能を最大まで伸ばしたいがそのためにできるだけ簡単な手段を探しているデ
先日ソースごと公開した俺得カラーピッカーですが、@zaki50さんと@kazzzさんの助言により俺得カラーピッカーをライブラリ化しました。またライブラリ化にあたりバグ回避のため、ちょこっとソースを変えています。 (読み飛ばしてもらってもかまわないが書かずにいられないすばらしき)経緯 ライブラリ化にあたってうまくいかないので、ウンウン悩んでました。@akai_tさんにも確認してもらっておかしいなと。すると@t_eggさんにカスタムViewでカスタム属性使ってる場合に名前空間の解決ができないというバグがある(Issue 9656)と教えてもらいました。 その後、このやりとりをtwitterで見かけた@keiji_ariyamaさんがこのバグに対してPatchSetを送ってくださいました(現在レビュー中)。何このすばらしきAndroidデベロッパー野郎どもの連携プレイ。尊敬します。こいつらまぶし
自分好みのColorPickerがなかったので作りました。ソースごと公開します。 apkはこちら。ソースはこちら(google code)。 つくってみての感想ですが、Shaderについての知識があることと、色情報はHSVをベースにした方が計算誤差が少なくてすむことに気づくというのがキモかと。かっとなって作ったのでソース汚いですが、おかしなところあったらお知らせください。 2011/2/5追記ライブラリ化したので使い方が若干変わります。こちらを参照してください。 作成にあたって、色情報の予備知識編として明日の鍵さんのブログがとてもわかりやすいと思うです。勉強になりました。
今回SuperdryColorPickerを作るにあたってぶちあたったShaderクラス。グラデーションとか陰影をつけるクラスで、以下のサブクラスがあります。 BitmapShader ComposeShader LinearGradient RadialGradient SweepGradient Shaderに関係するものとして以下の引数があります。 Shader.TileMode PorterDuff.Mode Xfermode Shader.TileMode どういう加工をするか Shader.TileMode CLAMP オリジナルの画像の外側にシェーダが描画される場合エッジカラーをコピーする Shader.TileMode MIRROR シェーダ画像が水平垂直方向に鏡像で繰り返される Shader.TileMode REPEAT シェーダ画像が水平垂直方向に繰り返される Por
次のページ
このページを最初にブックマークしてみませんか?
『Superdry Memorandom :-p』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く