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

2012年11月11日日曜日

[android] スクラップリーダーVer1.2.4更新

いろいろなバグを認識をしてはいましたが、なかなか対応するタイミングが無くて

前回リリースから4ヶ月も経過してしまいましたorz

Evernoteの認証がoAuthのみになっていたり、久しぶりに修正を行うと

他の箇所まで気になったりで、見た目はあまり変わらないのですが、内部処理を大きく変更しました。

・データ同期Serviceが切れる現象に対応

・SQLite接続をシングルトンモデルに変更

・データエクスポート時のファイルパスを外部SDに設定

・ウィジェットと同期サービスの分割

DL数が少ないにもかかわらず、コメントを書いてくださっている方もいらっしゃるので

なるべく早期に対応していきたいと思っています。

次回VerUPのTODOとして

・未読、全部切り替えボタンの配置

・保存フィードの一括GoogleReader連携登録UIの追加

DLはこちらから

スクラップリーダー(google play)



この件とはまったく関係ありませんが、今日はポッキー&プリッツの日らしいです。

江崎グリコは11月11日を「ポッキー&プリッツの日」と定め、日本記念日協会(加瀬清志代表)の認定を受けました。
ポッキーとプリッツは、スティック状菓子の代表的な存在。その形が数字の“1”に似ていることから平成11年11月11日の“1”が6個並ぶおめでたい日にスタートしました。
秋の行楽シーズンに合わせて、お客さまへの感謝の気持ちを込めて、毎年キャンペーンを実施しています。

11月11日はポッキー&プリッツの日から引用

日本記念日協会なるものに認定を受けているそうです。ゆくゆくは国民の休日に・・・・なるのかも?w

我が家でもプリッツ(シーザーサラダ味)を食して祝い?ました。

2012年9月7日金曜日

[android] SQLiteOpenHelperをシングルトンにする

ActivityとWidgetを併用するようなアプリ

もしくはActivityの裏でDBのデータを頻繁に更新するような、Serviceを動かすアプリ



このようなアプリを作る場合、SQLiteへのアクセスが頻発し、トランザクションをかますような

処理をした時に、参照系のSQLがエラーでアプリが落ちる。という事があります。


このような場合、SQLiteOpenHelperを継承したクラスをシングルトンにすることで対応できます。


class DatabaseHelper extends SQLiteOpenHelper {
    // 唯一のクラスインスタンス
    private static DatabaseHelper instance = null;
    
    /**
     * コンストラクタをprivateにすることで、外部からはインスタンス化できないようにする
     */
    @Override
    private DatabaseHelper(Context context) {
        super(context, "DBNAME", null, 1);
    }

    /**
     * このstaticメソッドからインスタンスを得る
     * 多数のクラスから参照されても、常にインスタンスは1つになる
     */
    public static synchronized DatabaseHelper getInstance(Context context) {
        if (instance == null) {
            instance = new DatabaseHelper(context);
        }
        return instance;
    }

    @Override
  public void onCreate(SQLiteDatabase db) {
  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  }
}

このクラスは他の常用クラスとまとめてjarにしてもいいかも。

2012年8月19日日曜日

[android] スクラップリーダーVer1.2.3更新

SC-02CをICSにアップデートした事によって判明した

このバグを修正した版を更新しました。


ダウンロードはこちらから

スクラップリーダー(google play)


twitterのコールバックスキーマの件は、スキーマに英字の大文字があったため

対象のactivityを呼べずにエラー画面となっていた様です。



android:ellipsize="end"

の件はICSでそもそも未対応?になっていた様で、android:lines="1"を

追加する事によって対応。(機種依存な気もする)


検証端末が少ないので、利用者のフィードバックが大切だよなぁと感じた今日この頃。

※勿論利用者がフィードバックしやすい様な仕組みを考える必要があるのは当然

2012年7月31日火曜日

[android] スクラップリーダー ICS対応のTODO

SC-02CをICSにアップデートしたら、Twitter認証のコールバックスキーマが呼べないというバグを発見
(WebView上でページが見つからない旨が表示される)

原因は不明なので、要調査

追記

TextViewに長い文字を省略させる
android:ellipsize="end"
が聞いていない。

2012年7月19日木曜日

[android] エミュレーターの内蔵メモリの容量を増やす

エミュレーターで開発していると、起動の遅さや動作の遅さもさることながら

一番困るのが内蔵メモリにインストール出来ない事が多い


デフォルトで50MB(だったと思う)しかないので、ちょっと重いライブラリを入れたり

drawableに色々置いてしまうとあっと言う間にインストール出来なくなる


外部SDにインストール可能(Manifest.xmlのinstallLocationにpreferExternalを指定)

してやれば良いが、それだとウィジェットが表示出来ない。


そこでGoogle先生に聞いてみたところ

コマンドラインからパラメータを渡して起動することによって

内蔵メモリを増やす事が出来る事が判明



emulator -avd EmulaterName -partition-size 300


EmulaterNameにはエミュレーターの名前、-partition-sizeの引数は内蔵メモリのサイズ(MB)を指定

これで大きめのアプリも内蔵して開発する事が出来る。

2012年7月18日水曜日

[デジモノ] Acer A700

iPad3rdの発売、Nexus7が発表された今、どのスペックも中途半端な印象を受ける。
TF700はこれにキーボードドックがついただけになるのかな

ディスプレイ:10.1インチ液晶(1920×1200)、10点までのマルチタッチ認識
SoC:NVIDIA Tegra3@1.3GHz
カメラ:5Mピクセル(LEDフラッシュ有)
入出力端子/ボタン:MicroSDカードスロット、MicroHDMI、MicroUSB、SIMカードスロット、3.5mmオーディオジャック、回転ロック
ネットワーク:WiFi(a/b/g/n)、Bluetooth3.0、3G
バッテリー容量:9800mAh
重さ:約650g

2012年4月21日土曜日

[android] ものばぁVer1.1.1公開

ものばぁをVerUPしました。

機能追加として

・オリジナル画像、音声追加機能

※キャプチャーはカメラの映像は撮れないので表示されていませんが、カメラが表示されます。


・削除機能(画像ロングタップで削除確認)





















・チャイルドロック機能
端末の「戻る」ボタンをロングタップ(押下したまま保持する)すると
端末メニューボタンと削除機能を停止することができます。
(解除する場合も「戻る」ボタンロングタップ)


















アプリダウンロードはこちらから
「ものばぁ」

2012年4月6日金曜日

[デジモノ] Asus PadFone 発売は4/20(台湾)

アプリオより


MWC2012のプレスイベントで発表され、発売前から話題のASUS「Padfone」が、台湾で発売される。「engadget」によると、4月7日より予約を開始し、4月20日に発売を予定しているとのこと。
android-asus-padfone
「Padfone」は、スマートフォン型の端末で、Padfone Stationと呼ばれるタブレット型端末にPadfoneを格納することで、画面表示を「Padfone」と「Padfone Station」でシームレスに移行することが可能になる。
つまり、「Padfone」の画面をより大画面の「Padfone Station」に表示することができる。
「Padfone Station」は、同じASUSのEee Pad Transformerシリーズ(TF101やTF201)でお馴染みのキーボードドック(別売)と接続して利用することも可能だという。
android-asus-padfone
Padfoneは4.3インチディスプレイ、Android4.0(Ice Cream Sandwich)、デュアルコア1.5GHzプロセッサを搭載し、Padfone Stationは10.1インチサイズディスプレイとなっている。
日本での発売は未定だが、斬新な発想とデザインにより、注目を集めている端末である。

Padfone スペック

  • OS:Android 4.0
  • ディスプレイ:4.3インチ、解像度960x540 Super AMOLED
  • サイズ:128×65.4 X 9.2 mm
  • 重さ:129g
  • CPU:Qualcomm Snapdragon S4 8260A Dual-Core 1.5 GHz
  • メモリ:16/32/64GB eMMC
  • アウトカメラ:約800万画素、AF、LEDフラッシュ
  • バッテリー:1520mAh



[android] drawable/***.xmlにて画像の縦横幅を指定する方法

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
     android:state_pressed="true"
        android:width="100dp"
        android:height="50dp"
     android:drawable="@drawable/button_on"
    />
    <item
     android:state_pressed="false"
        android:width="100dp"
        android:height="50dp"
     android:drawable="@drawable/button_off"
    />
</selector>

item要素にandroid;width android:heightが使えます

2012年3月31日土曜日

[android] ものばぁVer1.0公開

アプリ第2弾。幼児をあやすためのアプリ「ものばぁ」をリリースしました。





















画像をタップすると、その『もの』が発する音が出ます。(音楽再生時の音量を使います。音量注意)






画像は「写真素材 足成」様から
音声は「効果音源」様から拝借しております。

アプリダウンロードはこちらから
「ものばぁ」

2012年1月10日火曜日

[android] 初androidアプリ公開

年が明けて1発目、去年から少しづつ進めていたandroidアプリの開発が

やっとものになったので、本日から公開しています。


今は有料版のみ登録していますが、後日広告ありの無料版を公開する予定です。(機能的には変わらない)

2011年12月6日火曜日

[android] AppWidgetの表示変更時の注意

AppWidgetはActivityと違いUIの操作出来る範囲に制限があります。

そして操作するメソッドもAcitityの場合と違い、少し特殊です。

class TestWidget extends AppWidget {
   @Override
   public void onUpdate(Context context, AppWidgetManager awm, int[] awi) {
        // 全ての操作はRemoteViewsを介して行います
        RemoteViews rv = new RemoteViews(context,getPackageName(), R.layout.main);
        // id=textなTextViewのtextを変更します
        rv.setTextViewText(R.id.text, "Hello World!");
        
        // 反映させるにはAppWidgetmanagerに更新を通知します。(※これをしないと反映されません)
        ComponentName thisWidget = new ComponentName(context, TestWidget.class);
        awm.updateAppWidget(thisWidget, rv);
   }
}

よく反映のロジックを忘れるのでメモ

2011年11月7日月曜日

[android] XMLパーサ

Javaでパッケージ化されているXMLパーサは

などがあります。

その中でもfeed4jの導入が楽だったので紹介

http://www.sauronsoftware.it/projects/feed4j/download.php

ここからzipをダウンロードし

解凍したフォルダの中から
  • dom4j-1.6.1.jar
  • feed4j.jar
  • nekohtml.jar

をライブラリフォルダにコピーして、ビルドパスに追加します(パーサ機能のみで確認)

ソース上では以下のようにして、各内容を取得可能です。
URL url = new URL(site.getSite_url());
Feed feed = FeedParser.parse(url);
int max = feed.getItemCount();
for (int i=0; i< max; i++) {
 FeedItem item = feed.getItem(i);
 Log.d(TAG, item.getTitle());   // タイトル
 Log.d(TAG, item.getDescriptionAsText()); // 本文
 Log.d(TAG, item.getLink().toString());  // URL
 Log.d(TAG, item.getPubDate().toString()); // 投稿日時
}


※1.RomeはBOMが入っていると、うまく読めないそうです。。。
※2.informaは導入時点で断念しました。必要ライブラリが良く分からん

2011年11月6日日曜日

[android] 他アプリとの連携

ブラウザ起動
Intent it = new Intent(Intent.ACTION_VIEW);
it.setData(Uri.parse("http://hogehoge.hoge"));
startActivity(it);

設定画面
Intent it = new Intent("android.settings.SETTINGS");
startActivity(it);

メーラー
Intent it = new Intent(Intent.ACTION_SENDTO);
it.setData(Uri.parse("mailto:hoge@hoge.hoge"));
it.putExtra(Intent.EXTRA_SUBJECT,"title");
it.putExtra(Intent.EXTRA_TEXT,"body");
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(it);

電話コール
Intent it = new Intent(Intent.ACTION_CALL);
it.setData(Uri.parse("tel:090XXXXXXXX"));
startActivity(it);

マーケット(アプリ詳細)
Intent it = new Intent(Intent.ACTION_VIEW);
it.setData(Uri.parse("market://details?id=" + app_id));
startActivity(it);

2011年11月4日金曜日

[android] AppWidgetの動的背景変更

ステータスを表示するアイコンなどで、背景画像を動的に変えたい事があると思います。

通常のアプリを作る場合であればsetBackgroundDrawableやsetBackgroundResource等が使えますが、AppWidgetの場合使えません。

なので切り替える画像全てをFrameLayout内に格納し、setViewVisibilityで表示・非表示を切り替えるしか方法が無さそうです。

RemoteViews view = new RemoteView(getPackageName(), R.layout.main);
view.setViewVisibility(R.id.btn_lock_on, View.VISIBLE);
view.setViewVisibility(R.id.btn_lock_open, View.GONE);

2011年11月1日火曜日

[android] fill_parentとmatch_parentの違い

Android2.2(Froyo)から追加されたmatch_parentですが、fill_parentと違いは無い様です。

2.2以下の下方互換をしたいのであればfill_parentを使うが吉?かも

2011年10月31日月曜日

[android] Androidブラウザの共有時のIntentデータ

標準ブラウザの共有から暗黙的Intent遷移時に受け取れるパラメータの種類

Bundle extras = getIntent().getExtras();
extras.getString(Intent.EXTRA_TEXT);  // URL
extras.getString(Intent.EXTRA_SUBJECT); // サイト名

[android] resources.ap_生成エラー

Error generating final archive: java.io.FileNotFoundException: resources.ap_ does not exist 

こんなエラーが出た場合はEclipseの「プロジェクト」→「クリーン」で直る場合が多いと思われるが、今回は違った。


Eclipseのcleanな起動をしても駄目。多パッケージをEclipse上で扱っているとなるようだ。


解決方法としては新しいワークスペースを作成し、そこにソースを移動する。