2012年4月20日金曜日

Android 開発メモ

リソース
フォルダ説明利用例
res/values/色(Color)

#RGB
#ARGB
#RRGGBB
#AARRGGBB
XML定義<color name="color_red">#FF0000</color>
<color name="color_red_alpha">#33FF0000</color>
XML指定<TextView android:textColor="@color/color_red">
Java利用int color=getResources().getColor(R.color.color_red);
寸法

1px/1in/1mm
1pt/1dp/1sp
XML定義<dimen name="one_pixel">1px</dimen>
<dimen name="double_density">2dp</dimen>
<dimen name="sixteen_sp">16sp</dimen>
XML利用<TextView android:textSize="@dimen/sixteen_sp"/>
Java利用float dim=getResources().getDimension(R.dimen.one_pixel);
色(ColorDrawable)

#RGB
#ARGB
#RRGGBB
#AARRGGBB
XML定義<drawable name="color_red">#FF0000</drawable>
<drawable name="color_red_alpha">#33FF0000</drawable>
XML利用<TextView android:background="@drawable/color_red"/>
Java利用Drawable drawable = Resources.getDrawable(R.drawable.color_red);
文字列XML定義<string name="string_text">Hoge</string>
<string name="string_html"><b>Hoge</b></string>
XML利用<TextView android:text="@string/string_text"/>
Java利用CharSequence str=getString(R.string.string_text);
テーマ/スタイルXML定義<style name="Theme.MyTheme" parent="android:Theme">
  <item name="android:windowNoTitle">true</item>
</style>
XML利用<application android:theme="@style/Theme.MyTheme">
<activity android:theme="@android:style/Theme.MyTheme">
Java利用setTheme(R.style.Theme_MyTheme);
res/drawable/


ビットマップファイル種別Bitmap(*.bmp)
JPEG(*.jpg)
PNG(*.png)
GIF(*.gif)
XML利用<TextView android:background="@drawable/hoge"/>
Java利用button.setBackgroundResource(R.drawable.hoge);
ナインパッチ
ファイル種別Nine-Patch(*.9.png)
XML利用<TextView android:background="@drawable/hoge"/>
Java利用button.setBackgroundResource(R.drawable.hoge);
res/layout/レイアウト

ファイル種別XML(*.xml)
Java利用setContentView(R.layout.hoge);
res/anim/アニメーション

XML定義<?xml version="1.0" encoding="utf-8"?>
<scale
    android:fromYScale="1.0"
    android:toYScale="0.5"
    android:duration="500" />
XML利用<style name="Animation.Activity" parent="android:Animation">
    <item name="android:activityOpenEnterAnimation">@anim/activity_open_enter</item>
    <item name="android:activityOpenExitAnimation">@anim/activity_open_exit</item>
    <item name="android:activityCloseEnterAnimation">@anim/activity_close_enter</item>
    <item name="android:activityCloseExitAnimation">@anim/activity_close_exit</item>
</style>
<style name="MyTheme" parent="android:Theme">
    <item name="android:windowAnimationStyle">@style/Animation.Activity</item>
</style>
Java利用Animation animation=AnimationUtils.loadAnimation(this,R.anim.spin);
res/raw/バイナリ
ファイル種別制限なし
Java利用MediaPlayer player=MediaPlayer.create(this,R.raw.hoge);
InputStream in=getResources().openRawResource(R.raw.hoge);
res/xml/XMLファイル種別XML(*.xml)
Java利用XMLResourceParser parser=getResources().getXML(R.xml.some_xml);

リソース条件
リソース条件設定値説明
MCC(Mobile Country Code)と
MNC(Mobile Network Code)
-mcc310USのみ
-mcc310-mc004USのVerizon
言語(ISO 639-1)と
リージョン(ISO3166-1-alpha-2)
-jp日本語設定時
-en英語設定時
-en-rUS英語(US)設定時
画面縦横で短い方の寸法
(smallWidth)
-sw600dp画面縦横で短い方の寸法が600dp
(7インチタブレット)
-sw720dp画面縦横で短い方の寸法が720dp
(10インチタブレット)
利用可能な画面幅-w720dp720dpの画面幅が利用可能
利用可能な画面高さ-h720dp720dpの画面高さが利用可能
画面サイズ-small小さい画面サイズ端末向け
(最小320x426dp)
-normal通常の画面サイズ端末向け(最小320x470dp)
-large大きい画面サイズ端末向け(最小480x640dp)
-xlargeさらに大きい画面サイズ端末向け(最小720x960dp)
アスペクト比-long長いスクリーン
(WQVGA/WVGA/FWVGA)
-notlong長くないスクリーン
(QVGA/HVGA/VGA)
画面向き-portrait縦向き時
(vertical)
-land横向き時
(horizontal)
ドックモード-carカードック接続時
-deskデスクドック接続時
夜モード-night
-notnight日中
dpi-npdpidpiに関係しない
-ldpi約120dpiの端末向け(density=0.75)
-mdpi約160dpiの端末向け(density=1.0)
-hdpi約240dpiの端末向け(density=1.5)
-xhdpi約320dpiの端末向け(density=2.0)
-tvdpi約213dpiの端末向け(density=1.3312501)
タッチスクリーン種別-notouchタッチなし
-stylusスタイラス
-finger
キーボード種別-keysexposedハードウェアキーボード利用可能
ソフトウェアキーボード利用可能
-keyshiddenハードウェアキーボード利用可能
ソフトウェアキーボード利用不可能
-keyssoftソフトウェアキーボード利用可能
テキスト入力方法-nokeysハードウェアキーなし
-qwertyハードウェアのQwertyキーボード
-12keysハードウェアの12キーキーボード
ナビゲーションキー種別-navexposedナビゲーションキー利用可能
-navhiddenナビゲーションキー利用不可能
主な非ナビゲーション種別-nonavなし
-dpadデジタルパッド
-trackballトラックボール
-wheelホイール
APIレベル-v4API Level 4
-v15API Level 15
画面サイズ(ドット指定)-800x480画面サイズ800x480pxの端末向け
-1024x720画面サイズ1024x720pxの端末向け

アセット
フォルダ説明設定値利用例
asetts/アセットHTML/HTMLリソース
フォントなど
webView.loadUrl("file:///android_asset/call.html");

アイコンサイズ
拡張高解像度(xhdpi)高解像度(hdpi)中解像度(mdpi)低解像度(ldpi)対象
大アイコン最大サイズ96x96px72x72px48x48px36x36pxランチャー
メニュー
推奨サイズ60x60px40x40px30x30px
矩形サイズ56x56px38x38px28x28px
小アイコン最大サイズ72x72px48x48px32x32px24x24pxステータスバー
タブ
ダイアログ
リストビュー

エミュレータのスクリーンサイズ
低解像度(ldpi)中解像度(mdpi)高解像度(hdpi)拡張高解像度(xhdpi)
小画面(small)QVGA(240x320)-480x640-
中画面(normal)WQVGA400(240x400)
WQVGA432(240x432)
HVGA(320x480)WVGA800(480x800)
WVGA854(480x854)
600x1024
640x960
大画面(large)WVGA800**(480x800)
WVGA854**(480x854)
WVGA800*(480x800)
WVGA854*(480x854)
600x1024
--
拡張大画面(xlarge)1024x600WXGA(1280x800)
1024x768
1280x768
1536x1152
1920x1152
1920x1200
2048x1536
2560x1536
2560x1600

Dimension単位
Dimesion単位説明計算
dp(dip)Density-independent Pixels画面解像度に基づいた抽象的な単位1dpあたりのピクセル数
context.getResources().getDisplayMetrics().density

pixel=desity*dip;
dip=pixel/desity;
Nexus Oneはdensityが1.5で480px=320dp
spScale-independent Pixels画面解像度とユーザーが指定した
フォントサイズに基づいた抽象的な単位
-
pxPixels画面のピクセル数-
mmMillimeters画面の物理サイズのミリメートル-
inInches画面の物理サイズのインチ
(1インチ=25.4ミリメートル)
-
ptPoints画面の物理サイズの1/72インチ
(1ポイント=0.352ミリメートル)
-

コアメディアフォーマット
種別フォーマット/コーデックエンコーダデコーダ詳細サポートファイル
オーディオAAC LC/LTPモノラル/ステレオ
最高160Kbps
サンプリングレート8~48kHz
 3GPP (.3gp)
MPEG-4 (.mp4, .m4a)
ADTS raw AAC (.aac)
 デコード(Android 3.1+)
 エンコード(Android 4.0+)
 ADIF非サポート
MPEG-TS (.ts)(Android 3.0+)
 シーク不可
HE-AACv1
(AAC+)
-
HE-AACv2
(enhanced AAC+)
- ◯
AMR-NB4.75~12.2Kbps
サンプリングレート8kHz
3GPP(.3gp)
AMR-WB6.60~23.85Kbps
サンプリングレート16kHz
3GPP(.3gp)
FLAC-◯(Android 3.1+)モノラル/ステレオ(マルチチャンネル不可)
サンプリングレート48kHz
16-bit推奨
24-bitのディザは適用されない
FLAC(.flac)
MP3-Mono/Stereo 8-320Kbps(CBR)
またはvariable bit-rate (VBR)
MP3(.mp3)
MIDI-MIDI Type 0 and 1. DLS Version 1 and 2
XMF,Mobile XMF
RTTTL/RTX,OTA,iMelody
Type 0 and 1(.mid,.xmf,.mxmf)
RTTTL/RTX(.rtttl,.rtx)
OTA(.ota)
iMelody(.imy)
Vorbis--Ogg(.ogg)
Matroska(.mkv)(Android 4.0+)
PCM/WAVE-8- and 16-bit linear PCMWAVE(.wav)
イメージJPEGBase+progressiveJPEG(.jpg)
GIF--GIF(.gif)
PNG-PNG(.png)
BMP--BMP(.bmp)
WEBP◯(Android 4.0+)◯(Android 4.0+)-WebP(.webp)
ビデオH.263-3GPP(.3gp)
MPEG-4(.mp4)
H.264 AVC◯(Android 3.0+)Baseline Profile (BP)3GPP(.3gp)
MPEG-4(.mp4)
MPEG-TS(.ts)(Android 3.0+)
 ACCのみ
 シーク不可
MPEG-4 SP--3GPP(.3gp)
VP8-◯(Android 2.3.3+)ストリーミング(Android 4.0+)WebM(.webm)
Matroska(.mkv)(Android 4.0+)

スタイルとテーマ 
項目名説明デフォルト
スタイルレイアウトのXMLファイル(複数の場合あり)で1要素に適用する属性郡。styles.xml
テーマアプリ全体または1アクティビティに適用する属性群。
  • Theme
  • Theme.Black
  • Theme.Black.NoTitleBar
  • Theme.Black.NoTitleBar.Fullscreen
  • Theme.Dialog
  • Theme.Dialog.Alert
  • Theme.Dialog.AppError
  • Theme.Dialog.RecentApplications
  • Theme.ExpandedMenu
  • Theme.GlobalSearchBar
  • Theme.IconMenu
  • Theme.InputMethod
  • Theme.Light
  • Theme.Light.NoTitleBar
  • Theme.Light.NoTitleBar.Fullscreen
  • Theme.Light.Panel
  • Theme.Light.WallpaperSettings
  • Theme.NoDisplay
  • Theme.NoTitleBar
  • Theme.NoTitleBar.Fullscreen
  • Theme.Panel
  • Theme.SearchBar
  • Theme.Translucent
  • Theme.Translucent.NoTitleBar
  • Theme.Translucent.NoTitleBar.Fullscreen
  • Theme.Wallpaper
  • Theme.Wallpaper.NoTitleBar
  • Theme.Wallpaper.NoTitleBar.Fullscreen
  • Theme.WallpaperSettings
themes.xml

背景透明テーマ
利用例
values/styles.xml
-背景透明
-タイトルバーなし
-タイトルバー影なし
<?xml version="1.0" encoding="utf-8"?> 
<resources>
    <drawable name="transparent_color">#00000000</drawable>
    <style name="Theme.Transparent" parent="android:Theme">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@drawable/transparent_color</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>
</resources>
AndroidManifest.xml
<activity android:name=".Test"
    android:label="@string/app_name"             
    android:theme="@style/Theme.Transparent">
    <intent-filter>                 
        <action android:name="android.intent.action.MAIN" />                 
        <category android:name="android.intent.category.LAUNCHER" />             
    </intent-filter>         
</activity>

0 件のコメント:

コメントを投稿