2013年6月30日日曜日

カメラプレビューの縦横比を整える

カメラのプレビューサイズを合わせるには、
サーフェイスビューのサイズを変更する必要があります。
以下の例ではビューのサイズを、幅が狭い辺に合わせなるべく画面全体にビューのサイズを合わせています。

public void surfaceChanged0(SurfaceHolder holder, int format, int width,
int height) {
float scale = 1f;

if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {// 縦表示なら
scale = (float) width / (float) previewHeight;
layoutParams.height = (int) (previewWidth * scale);
layoutParams.width = (int) (previewHeight * scale);
} else { // 横なら
scale = (float) height / (float) previewHeight;
layoutParams.height = (int) (previewHeight * scale);
layoutParams.width = (int) (previewWidth * scale);
}

this.setLayoutParams(layoutParams);
}

カメラにもよりますがホームキー側に空きができると思います。

レイアウトの配置に優先順位を指定するサンプルandroid:layout_weight

ボタンなどGUIの配置の際、
上側のビューにmatch_parentを指定すると、
その下にビューが配置できなくなってしまいます。

そこで優先順位layout_weightの指定です。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <GridView
        android:id="@+id/GridView01"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:columnWidth="60dp"
        android:gravity="center"
        android:horizontalSpacing="10dp"
        android:numColumns="auto_fit"
        android:padding="10dp"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp"
        android:layout_weight="0.50" >
    </GridView>

    <LinearLayout
        android:id="@+id/yohaku"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="vertical" >

    </LinearLayout>

</LinearLayout>

layout_weightはデフォルトが1になっています。
小数点以下にすることで優先度が下がります。

ビューの背面全面の指定などにも使えます。

音声リモコンカメラ2

リモコン画像

無料アプリ"音声リモコンカメラ2"をリリースしました。


今までのカメラアプリの欠点を保管した集大成です。※アイコン手抜きですいません

シャッターボタンは廃止しました。
音量UPキーで通常撮影。
音量DWONキーでクイック無音撮影。

日本語化対応しました。※変な英語ですいませんでした
撮影後すぐにプレインストールされているギャラリーに反映されるようになりました。
前作同様に登録したキーワードを発音することで撮影されます。
大きな音に反応するモードも健在です。
無音カメラモードは解像度がやや落ちますが、高画質と謳っている無音カメラ並みの画質です。

今回は広告を載せていますが、リアカメラ使用時は広告表示はありません

Androidのバージョンアップに対応すべく、大幅な改修と見直しを行い、メニューボタンを追加しました。



Android4以上だと透過ボタンデザインになります。





2013年6月29日土曜日

CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0

Cursorを使用した際に以下のエラーが発生しました。

06-29 21:37:46.693: E/AndroidRuntime(18071): FATAL EXCEPTION: main
06-29 21:37:46.693: E/AndroidRuntime(18071): android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
06-29 21:37:46.693: E/AndroidRuntime(18071): at android.database.AbstractCursor.checkPosition(AbstractCursor.java:406)
06-29 21:37:46.693: E/AndroidRuntime(18071): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
06-29 21:37:46.693: E/AndroidRuntime(18071): at android.database.AbstractWindowedCursor.getInt(AbstractWindowedCursor.java:68)
06-29 21:37:46.693: E/AndroidRuntime(18071): at android.database.CursorWrapper.getInt(CursorWrapper.java:106)
・・・

どうやらカーソルの検索結果が見つからない状態でカーソルを移動させたためのようです。

    String str= ローカル変数以外の変数、finalやstatic変数など
    // コンテンツプロバイダのURI取得
    Cursor c = getContentResolver().query(str・・・

カーソルがNULLか0件でないか確認する処理が必要です。

閉じるのをお忘れなく

2013年6月28日金曜日

アマゾンアプリストアのアプリ認証から公開

アマゾンのアプリストアにアプリを申請すると約一日ほど審査期間があります。

認証後はストアが更新されるが数時間?ほどなので、

公開まで最長二日かかることになります。

検討中→認証→LIVE

といった流れです。


大抵は24時間ほどで公開されます。

R を変数に解決できません XMLエラー

エクリプスのJAVAファイルに"R を変数に解決できません"とエラーがでました。

このエラーはプロジェクトのXMLファイルにエラーがある場合に発生します。

具体的には

layout/
menu/
valses/
AndroidManifest

の中のXMLファイルです。

XMLファイルにエラーがある場合はRクラスを更新できず参照設定が行えなくなります。

XMLのエラーはファイルを開いて保存を行わないと表示されません。

修正後にもエラーが表示される場合はプロジェクトのクリーンを行うと解消されます。

隠し画面や各設定画面のショートカットを作成する

無料アプリ「カスタム写真アイコン」は、ANDROIDの隠し機能へアクセスできるショートカットを作成できます。

プロキシの設定テザリング画面などのショートカットを作成することもできます。

アプリのアイコンや名前を偽装することも可能。

直接開くことが可能な画面ならどこにでもショートカットを作成することができます。

設定の各画面にも対応しています。

使い方は色々。

インストールされているアプリのアイコンを流用して、アプリを偽装することもできます。

ギャラリーの画像をアイコンにできます。