ラベル Android の投稿を表示しています。 すべての投稿を表示
ラベル Android の投稿を表示しています。 すべての投稿を表示

2014年1月12日日曜日

Android Resposive UI

2ヶ月ほどかけてやっと読了。
Smashing Android UI レスポンシブUIとデザインパターン
前半はプラットフォームの機能とUIコンポーネントのおさらい。
後半ははやり?のレスポンシブUIと、Androidデザインパターン。
私は2.3ぐらいで知識がとまっているので、最新情報が網羅的に把握できたのでありがたい。
(とはいえ、Developers/Designサイトは並行して読む必要あり。)

個人的には、レスポンシブUIの部分よりも、最後のデザインパターンのところや、UIのサンプルコンテンツは役に立ちそう。
以下デザインパターンまとめ。
  • User Actionデザインパターン:
Action Bar(上部アプリアイコン+操作アイコン)Google+/Gmailなどで採用
Quick Actions(長おししたときのドロップダウンメニューなど)Evernote
Action Drawer (したからスライドさせて表示させる)
Pull-to-Referesh(ドラッグさせてUpdate)Twitter
Swipe-to-Dismiss(ドラッグさせて消す) Google 
  • Navigation & Layout デザインパターン:
Stacked Gallaries(複数のソースごとにドラッグ操作)Pulse
Dashboard(アプリのランディング画面) Flipboard
Workspace(タブつきUI)Google Play, Facebook
Split View(Tabletでのアウトライン+本文)Google Mail
Expand-in-context(説明文などの拡張領域)Google play
Side-navigation(横からSwipeさせて出てくる画面) Evernote
  • Dataデザインパターン
Dynamic List(表示の後よみ)Facebook
Image Placeholder(画像)
Non Forced(Login前のナビゲーション)Catch、Any.Do
Drag-to-Reorder Handle(リストの順番変更)Any.Do

アプリも1,2年前に比べてどんどん進化してきている。

2013年5月19日日曜日

Animation-listの動作

androidでアニメーションさせたい場合は、res/animにxmlを作成すれば良いのだが、Tweenとanimation-listでは起動時から再生したい場合、呼び出すタイミングが違うので注意。

tweenの方は、親のActivityのOnCreateのタイミングでloadAnimationを呼んでもOK
animation-listで実行する場合は、OnCreateでstartを呼んでも実行されない。
で、どこで呼ぶかというと、ActivityのOnWindowChangedで呼ぶ。

参考リンク:以下の最後の方に記載してある。
2D Graphics

2011年2月24日木曜日

複数packageを1apkとして提供する方法

複数packageを1apkとして提供する場合は、Manifestファイルの書き方が肝。
<manifest ....
  package = com.aaa >
  ....
   <activity android:name=".bbb.cccActivity" .... />
   <activity android:name=".ddd.eeeActivity" .... />
</manifest>

のように書いてやる。
そうするとリソースが見つからないエラーが消える。

メインパッケージ以外のクラスファイルをManifest.xmlへ記述する方法

2011年2月7日月曜日

外部Strageへの書き込み

sdcardへの書き込みではまっていたので記録を残しておく。


            FileOutputStream fileOutputStream = null;
            try {
                fileOutputStream = new FileOutputStream("/sdcard/" + dataName);
                fileOutputStream.write(data);
            } catch (Exception e) {
                cameraRelease();
            } finally {
                if (fileOutputStream != null) {
                    fileOutputStream.close();
                }
            }


で、NullPointerでおっこっていたのだが(2.1ではおけ)
2.2からは、uses-permissionに、WRITE_EXTERNAL_STRAGE を指定しなければなりません。
トホホ・・・

2011年1月13日木曜日

Android applicationからTitleを消したい

manifestのandroid:themeに参照するリソースを設定。
resourceはres/values/styles.xml
の中の値を渡している。
resource側では、
    <style name="Theme" parent="android:Theme">
        <item name="android:windowNoTitle">true</item>
     </style>
と指定してやればOK。

参考リンク:
http://developer.android.com/guide/topics/ui/themes.html

ついでに、Homeアプリ(HOMEを押した時に選択肢が出るように)にするためには、MainのActivityにintent filterで、category.HOMEを指定してあげましょう。

2010年12月24日金曜日

size対応

WebViewでローカルhtmlを読み込んだ際、大きくしたEmulatorだと小さい画面でしか表示されない。(しかもその中でスクロールされる・・・・)
修正するために、supports screensで対応。
Android manifestに、

<supports-screens android:largeScreens="true" />
を追加。


参考リンク:
supports-screens

2010年10月1日金曜日

LiveWallPaper - Android

作りかた。
Dynamic Displayのレンダリングのため,Surface Viewを利用
ユーザのスクリーンタッチイベントを取得したり、イベント処理も必要。
作るコンポーネントは以下3つ。

  • Live Wallpaper用のXML resource

Androidのお作法で、res/xmlの中に作る。
wallpaper がTop elementで、その中のuser attributesとしてauthor, description, thumbnailを指定。
これらがWallpaper設定時の選択画面で出てくる表示になる。
追加で何か設定させたい場合(画像や図選択、挙動の設定などなど)は、"SettingActivity"tagを指定すれば、独自の設定画面を用意できる。

  • Wallpaper serviceの実装

Wallpaperserviceの拡張を行う。ここでWallpaperService Engineクラスのインスタンス化。
すべてのdrawing処理、インタラクションはwallpaper service engine クラスでハンドルされる。
このサービスを、マニフェストにserviceとして登録。
また、Live wallpaperはandroid.service.wallpaper.WallpaperService のIntent Filterを含む必要がある。
また、meta-dataノードにandroid.service.wallpaperをname attributeとして、
リソースファイルをresouece attributeとして追加。
また、BIND_WALLPAPER パーミッションも必要なのでこれも追加。


  • Wallpaper engineの実装 (WallpaperService.Engineのインスタンスを新規に作成して返す。)

WallPaperServiceクラスでは、必ずEngineの実装が必要。WallpaperService.Engineクラス拡張をする。
このEngineは、Surface(壁紙表示、タッチイベントの取得)をカプセル化している。Surfaceはバックグランドスレッドのアップデート、スムーズネス、動的でインタラクティブ表示)の描画サポートを行うcanvasの一種。
drawingする前には、必ずonsurfaceCreatedのイベントハンドラで示される初期化を待つ必要がある。
その他、イベントコールバックの実装が必要。(onTouchEvent などなど。)

2010年9月21日火曜日

note

他のPCでBuildしたソースを再度別PCでBuildするときは、genディレクトリを削除する。
そうしないと、変数の解決が出来なくてエラーが出る

2010年9月20日月曜日

Start blog

前のBlogから移行。
つらつらとソフト関係その他雑多なメモを残していきます.

最近はLinux(Ubuntu)とAndroidを触ることが多く、覚書したいことも増えてきたので
こちらに残すことに。
今日ひっかかったとこ。
- Java5
Ubuntu 10でAndroid SDKのSourceコンパイルができなかったので調べたところ、どうもJavaのバージョン問題らしい。
(Android本体はできてた)
Ubuntu 10では標準でjava6が入っており、apt-getでいけるかと思ったら、aptのリポジトリが違う。
そこで
を参考にjava5に変更。
環境変数を設定しなおしてBuildを通す。

- project Overlap
一度workspace内でprojectとして認識させたアプリは、New > Android Project >create project from existing code で認識させるとoverlap エラーになってしまうため、Importで 認識させればよい。
#それでもうまく認識できない場合がある。調査中。。。