タグ

androidに関するcronecoのブックマーク (140)

  • Timerを使って定期的に実行する方法 | TechBooster

    今回は定期実行に便利なタイマーです。 ストップウォッチを例題にTimer処理のポイントを3つ、紹介します。 マルチスレッド処理について TimerやTimerTaskはcancelメソッド実行後は再利用できない Androidの描画手順(UI Threadを使うシングルスレッドモデル) Androidでもjava.util.Timerが利用可能です。 ご存じの通り、Timerは新しいタスク(スレッド/Thread)を作成して、指定した遅延時間がたつと実行されます。 AndroidでTimerを使う際は、とくにスレッド処理について意識する必要があります。 経験上、タイマーを使う際は処理のついでに描画を更新したいときが多いのですが、Activityの描画ロジックがシングルスレッド前提で設計されているためです。 最初に1.スレッドについて紹介します。次に、ストップウォッチを例に2.タイマー処理を

    croneco
    croneco 2012/07/19
    AndroidでTimerを使う。
  • 無職のプログラミング Android Compatibility Package を探し求めて

    事の発端からPackageを見つけるまでを、時系列にまとめてみた。 勉強用Androidアプリにダイアログを追加する。 ↓ ダイアログ表示後backするとメモリリークして異常終了。Dialog.show()で表示したのがダメみたいだ。 きちんとShowing a Dialog | Android Developersに従って、Activity.showDialog()で表示しよう。 ↓ リファレンスを見るとActivity.showDialogはdeprecated(非推奨)。DialogFragmentを使いなさいと書いてある。 しかしDialogFragmentはAPI level 11(Android 3.0)以上でなければ使えない。 ↓ Android Compatibility Packageを使えばAPI level 4(Android 1.6)以上でもFragmentsが使え

  • Android(SQLite) でシングルトンと排他制御を行う | 専門学校 鳥取情報経理学院ブログ

    先回の課題として インスタンスをユニークにするということ。それから 複数のスレッドから同時に利用されても正常に動作する という二つのテーマがありました。 日はその解説を少し掘り下げてしたいと思います。 マルチスレッド環境で、リソースやオブジェクトなどが複数のスレッドから同時に 利用されても正常に動作する必要がある局面があります。 このような場合、解決方法の一つとして、オブジェクト指向設計では GoFによる23種類のデザインパターンの一つとして、インスタンスを一つしか 生成しないことを保証するSingleton パターンを利用する手段があります。 また、マルチスレッド環境にて複数のスレッドが一つのインスタンスを 支配しないようにしなければなりません。所謂、排他制御という仕組です。 携帯電話などのような組込み系でVisual C++ やMFCで実装する場合には、Mut

  • (旧) 猫好きモバイルアプリケーション開発者記録 AndroidにおけるSQLiteを使いやすくする Vol.1

    AndroidSQLite3に対応しており、(ただし、外部キー制約がサポートされていないバージョン) これを利用することでデータ管理の自由度が高まります。 Androidでは連想配列方式で手軽にデータ管理ができるプリファレンスというものがあるため、意外に使わないことも多いかも知れませんが、プリファレンスは大量のデータ管理には向いていないということと、RDBのようにトランザクション処理を行うことができないので、そのような管理を行いたい場合はやはりSQLiteを利用する必要が出てきます。 ただし、SQLiteは他のRDBと比べて非常に癖のあるシステムです。Oracle, MySQL, PostgreSQLと同じように使っていると大きくパフォーマンスに影響を及ぼす可能性が多々あります。 また、そもそもAndroidそのものがSQLiteは使いやすくしていません。JDBCで組んでいるのとそれほど

  • ダイアログの表示はshowDialogで!: Android

    今まで、適当にダイアログを表示させていたのですがshowDialogで表示させるとメリットが大きいことがわかりました。 ダイアログの表示には2種類あります。 「Activityの管理のもとに表示」 と 「自分で表示」 「Activityの管理のもとに表示」とはonCreateDialogの中でダイアログを作って、showDialogで表示させることです。 「自分で表示」とは、onCreateDialogを使わずに、Dialog.show()で表示させることです。 結論からいうと、Dialog.show()はだめです。メリットなし。 では、Dialog.show()の場合を見てみましょう! クリックすると、ダイアログを表示します。 一見できているように見えます。 ここで画面を横向きにしてみます。 ・・・・ダイアログが消えました! そして、エラーはでませんでしたが、DDMSのログにはこんな文字

  • Android 処理中ダイアログを作る - yasdevelop's diary

    ようするに NowLoading... ○←くるくる みたいなのを処理中に表示する方法。 コード private final Handler handler = new Handler(); private Dialog dialog; @Override protected boolean onTap(int index) { OverlayItem tapItem = mOverlays.get(index); // プログレスダイアログを表示 dialog = new ProgressDialog(this); dialog.setIndeterminate(true); dialog.setMessage("now loading."); dialog.show(); // ダイアログを閉じる Runnable runnable = new Runnable() { @Overri

    Android 処理中ダイアログを作る - yasdevelop's diary
  • throw Life - AndroidのHandlerとは何か?

    AndroidでWeb APIを使う場合、マルチスレッドによるユーザビリティ向上を以前のエントリで説明しました。 AndroidアプリのUIはシングル・スレッド モデルです。 単純にマルチスレッドにしてUIの操作をしてしまうと、CalledFromWrongThreadExceptionでアプリがダウンしてしまいます。 これを回避する仕組みがHandlerです。 Handlerの仕組みを簡単に説明しようと思ったのですが、 またもや長くなってしまったので、先にまとめます。 AndroidUI操作はシングル・スレッド モデル ユーザビリティ向上の為にはマルチスレッドが必要 Handlerで実現 Handlerを使わない場合に起きる例外は実行スレッドのチェックで発生 Handlerを使うと、UI Threadの持つキューにジョブを登録できる キューはUI Threadにより実行される

  • Y.A.M の 雑記帳

    この方法は別にダイアログ(Dialog)でなくても、どこでも使えます。 showSoftInput メソッドを使います。 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); を使う方法は gabu さんのブログ EditTextを持つダイアログ(AlertDialog)が表示された時に自動的にソフトキーボードを表示する。 - gabuchanの日記 - にのっています。 以前のエントリでボタンを押したときにソフトキーボードを表示する方法を紹介しました。 Y.A.M の 雑記帳: Android ボタンを押したときにソフトキーボードを消す このときと同様に InputMethodManager を使います。 showSoftInput メソッドの第1引数で指定する

  • Androidでのカメラ連動するアプリでのカメラの呼び出し方とデータ取得方法

    Androidでカメラと連動するアプリの作り方 2012/8/14 コメントを頂き、記事を追記修正し、サンプルプログラムを作成しました。 画像を編集するようなアプリを作成する場合、カメラをIntent経由で呼び出してとった写真のデータを戻してもらうことがあると思います。 その時にどのようにしたら、カメラを起動できて、どのようにしたらそのデータが取れるのか調べた結果です。 Intentでのカメラの呼び出し方 google謹製の「com.android.camera」カメラアプリを調べると2つそれらしいintent-filterが設定されていました。 android.media.action.IMAGE_CAPTURE android.media.action.STILL_IMAGE_CAMERA の2つです。 どちらを使えばいいか調べてみると 正解は、「android.media.actio

  • 点線をCanvasに描画する - YUJimny備忘録

    点線を描画するサンプル。drawLine()以外の描画処理でも使えるようです。 初期化処理{ Paint mDotPaint = new Paint(); mDotPaint.setPathEffect(new DashPathEffect(new float[]{ 5.0f, 5.0f }, 0)); // 5pixel描いたら5pixel描かないを繰り返す mDotPaint.setStyle(Paint.Style.STROKE); // スタイルは線(Stroke)を指定する mDotPaint.setStrokeWidth(1); // 線の太さ mDotPaint.setColor(0xffb8b8b8); // 線の色 } @Override protected void onDraw(Canvas canvas) { int width = getMeasuredWidth

    点線をCanvasに描画する - YUJimny備忘録
  • Android Dialog の大きさを自分で設定する

    毎回、過去に実装したアプリのコードを見るのがめんどいのでメモしておきます。 例えば、入力欄のあるオリジナルのダイアログを作るとします。 public void showOriginalDialog(Context context) { LinearLayout ll = new LinearLayout(context); ll.setOrientation(LinearLayout.VERTICAL); TextView tv = new TextView(context); tv.setText("お名前を入力してください。"); EditText et = new EditText(context); ll.addView(tv); ll.addView(et); Dialog dialog = new Dialog(context); dialog.setContentView(l

    Android Dialog の大きさを自分で設定する
  • ビューのサイズを取得する - Androidプログラマへの道 〜 Moonlight 明日香 〜

    Androidプログラマへの道 〜 Moonlight 明日香 〜 C/C++プログラマの管理者が, Androidプログラムにチャレンジ. AndroidプログラミングのTipsをメモっていく予定です. トップページページ一覧メンバー編集 ビューのサイズを取得する 最終更新: moonlight_aska 2010年10月17日(日) 21:30:04履歴 Tweet ビュー(View)のサイズ(横幅, 縦の高さ)は, ビューがレイアウトされ, 見える状態になってからでないと取得できない. onCreateで取得すると.... ビューの横幅や縦の高さを取得するメソッドは, View#getWidthメソッド, getHeightメソッドであるが, Activity#onCreateメソッドで呼んでも正常な値が取得できない(値は0になる). この段階では, まだビューが見える状態になってい

    ビューのサイズを取得する - Androidプログラマへの道 〜 Moonlight 明日香 〜
  • subclipse で bin フォルダをバージョン管理から除外する方法

    subclipse で android プロジェクトの bin フォルダをバージョン管理から除外する方法が分かったので、 メモしておきます。 切断&リポジトリー削除 一旦、バージョン管理から除外するために、切断&リポジトリー削除を行います。 これから新規にリポジトリー登録を行う場合は、この手順はスキップします。 まずは、切断。 Eclipse の Package Explorer より、該当のプロジェクトを右クリックし、 "Team" --> "切断..." を選択します。 "SVNから切断を確認" のダイアログが表示されたら、 "ファイル・システムから SVN メタ情報も削除します。" を選択し、"Yes" を押します。 次は、リポジトリーの削除。 SVN リポジトリー・エクスプローラーより、該当のプロジェクトを右クリックし、 "削除..." を選択します。 "コミット" のダイアログが

    subclipse で bin フォルダをバージョン管理から除外する方法
  • TechCrunch | Startup and Technology News

    While all of Wesley Chan’s success has been well-documented over the years, his personal journey…not so much. Chan spoke to TechCrunch about the ways his life impacts how he invests in startups.

    TechCrunch | Startup and Technology News
  • お絵かきアプリを作りたい。描画編 - 素人のアンドロイドアプリ開発日記

    お絵かきアプリを作成してみたいと思います。 参考:https://gist.github.com/547660 前回作成したViewをイベントによって、再描画をする。を元に作成をしてみたいと思います。 まず、前回の丸を描く際に利用した方法を用います。 今回は線を描く方法を考えたいと思います。 線を描く時にドロイド君を書いた時のdrawLineを用いましたが、連続した線を描く為には、drawPathを用います。 drawPathはpathで作成した点をなぞる形で、線を描いてくれます。 またペイントの設定は下記にしました。 paint.setAntiAlias(true); paint.setColor(Color.LTGRAY); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(6); paint.setStrokeCap(P

    お絵かきアプリを作りたい。描画編 - 素人のアンドロイドアプリ開発日記
  • ImageViewとBitmap#recycle覚書 - hidecheckの日記

    開発してるとActivityにBitmapを持たせたいことってよくある でもメンバで持ってると自前で解放しなくてはならない。 Bitmapのメモリ管理はネイティブ側で管理されてるので明示的に開放する必要がある。 マジで?って思ったので実験してみた 実験内容 以下のパターンでBitmapActivityがどのように変化するかを確認 実験1 ImageViewを持たないActivity 実験2 レイアウトでImageViewを持ったActivity 実験3 レイアウトでImageViewを持ち、メンバ変数でもImageViewをもつActivity 実験4 ImageViewを持ち、メンバ変数でBitmapをもつActivity 実験5 Bitmap#recycleの正しい使い方 使うアプリ こんな感じのアプリ 実験2〜4 MainActivity>BitmapActivity>(戻るキーで)

    ImageViewとBitmap#recycle覚書 - hidecheckの日記
  • JenkinsでCI(継続的インテグレーション)すればAndroidアプリ開発はもう怖くない

    JenkinsでCI(継続的インテグレーション)すればAndroidアプリ開発はもう怖くない:Androidアプリ開発テスト入門(6)(1/2 ページ) 日Androidの会テスト部が、いままで培ってきたAndroidアプリ開発におけるテストのノウハウを、実際のテストコード例とともに紹介していきます 連載「Androidアプリ開発テスト入門」では、Androidアプリを開発している方のためにテストの基的なノウハウを解説しています。第6回では、CIツールである「Jenkins」を用いてAndroidをテストする方法を解説します。 いまさら聞けない「継続的インテグレーション(CI)」とは 「継続的インテグレーション」(以下、CI)とは、アジャイルのベストプラクティスの1つで、「すべてが自動化された再現可能なビルド・テストを日に何度も行うこと」です。 CIのメリットには、次のものがあります

    JenkinsでCI(継続的インテグレーション)すればAndroidアプリ開発はもう怖くない
  • 第7回 「Android 4.0」をPCの仮想マシン上で動かす(後編)

    Android 4.0」は、米グーグルがオープンソースで開発を進めているモバイル機器向けOSの最新バージョンである(厳密には、2012年4月末時点では「Android 4.0.3」が最新版となる)。連載第5回および第6回に引き続き、x86パソコン向けにカスタマイズされたAndroid 4.0を米オラクルの無償仮想化ソフト「Oracle VM VirtualBox」(以下、VirtualBox)の仮想マシンにインストールして楽しむための方法論を解説していく。 前回まで(連載第5回および第6回)で、仮想マシンにAndroid 4.0をインストールして実用的に使えるようにするまでの話はひと通り終わっている。作成したAndroid 4.0入り仮想マシンは、(仮想)有線LANインタフェース経由でネットワークに接続でき、独自のマーケットプレイス経由でアプリの追加なども可能である(写真1)。「これくら

    第7回 「Android 4.0」をPCの仮想マシン上で動かす(後編)
  • EditTextクラスを使用する。 - 素人のアンドロイドアプリ開発日記

    次にEditTextクラスを学んでいきます。 EditTextクラスに関してはユーザーがテキストを入力する事ができるエリアになっており。ユーザーが入力された値を取得する事が簡単にできるクラスになっています。 アンドロイドでは、 1、クリックでテキスト入力 2、テキスト入力時のイベントの送出 の2点をチェックボックスが自動で行ってくれます。 作り方 最初にeTextというプロジェクトを作成します。 作成が完了したら、main.xmlのファイルを開きます。 ※main.xmlでは【graphical layout】で作業を行うと簡単にレイアウトの変更ができます。 TextViewクラスがデフォルトで中に配置されていると思いますが、削除をします。 次に、項目の中からEditTextをドラッグして、main.xmlの中にいれます。 今回のEditTextの確認の為にTextFiedクラスを新たに作

    EditTextクラスを使用する。 - 素人のアンドロイドアプリ開発日記
  • Android AlertDialogを表示する

    的な使い方タイトルとメッセージを表示するだけの基的なAlertDialogです。 「戻る」ボタンで元の画面に戻ります。 package my.study.android; import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle("Title"); alert.

    Android AlertDialogを表示する