ちょいAndroid。Typescriptいいよ。JenkinsとかGradleとか。APTもいいなー。
ちょいAndroid。Typescriptいいよ。JenkinsとかGradleとか。APTもいいなー。
初のJava&Androidのプログラミング関係の記事です。 先日、訳あってGridViewの項目をドラッグ&ドロップで移動し、その結果をDBに反映するというコードを書きました。既存のコードをできるだけ残すという形をとったので、いくつかのサイトを参考にしながら実装したのですが、今回書いたコードも案外使えるのではないかと思い参考までにと載せておくことにしました。(その他のサイトのものと比べてコメントも多めだと思います。) JAR http://gcc.minibird.jp/jabnz.g-c-c.info/130713/DDAbsListView.jar javadoc http://gcc.minibird.jp/jabnz.g-c-c.info/130713/ddabslistview/ ソース http://gcc.minibird.jp/jabnz.g-c-c.info/13071
Viewをドラッグ・アンド・ドロップするというと、どのように実装するのか直ぐには思い浮かばなかったので、調べたところ、Viewをドラッグするだけなら、非常に簡単に実装できることがわかりました。私が作成した実験プログラムを紹介してみます。 画面イメージ 作成したプログラムの画面イメージは、次のようになります。画面内のドロイド君アイコンをドラッグすることが出来ます。 プログラム構成 画面のレイアウト構成、実装するクラスの構成を図にしました。レイアウトは、ドロイド君アイコンを表示するImageViewと、そのImageViewを自由に配置可能なFrameLayoutで構成してあります。実装するクラスは、図中の緑色のボックスで、DragActivityとDragViewListenerの2つです。ピンク色のボックスは、継承元となるAndroidのクラスです。 プログラム詳細 レイアウトXML(dr
昨日のエントリーに引き続き,バッドノウハウ的なものを箇条書きでまとめておく。思い付いた順に追加していく予定。 Activity関連 永続化はonPauseで行う*1。詳しくはActivityのライフサイクル図を参照のこと。 onPauseと対になっている処理は,onResumeで行うこと。onStart/onStopはあんまり使わない,気がする。 DialogはAlertDialog.Builderを使って実装するのが楽。ただし,裏で何らかの処理を行なっている間,ユーザーに操作をさせないために表示するダイアログ(いわゆるProgressDialog)は使わないようにする。DialogではなくActivityを新しく作って表示させることで,いくつかのトラブルを回避できる*2 *3。 重いタスクはUIスレッドで処理しない。AsyncTaskなどを使ってワーカースレッドで実行する。ただし,ワーカ
描画領域をクリップすると、クリップされた領域のみが描画対象になります。 クリップする領域を指定するCanvasクラスのメソッド 以下のCanvasクラスのメソッドを使って、クリップする領域を指定します。 boolean clipRect(float left, float top, float right, float bottom) float型の引数left, top, right, bottomで指定された矩形領域を、Region.Op.INTERSECTでクリップします。 boolean clipRect(float left, float top, float right, float bottom, Region.Op op) float型の引数left, top, right, bottomで指定された矩形領域を、Region.Opの指定に従ってクリップします。 boolea
Viewを丸く切り取るには、onDraw()をオーバーライドしてclipPath()してあげたクラスを作ってあげればOK。 こんな感じ。 public class ClipImageView extends ImageView { private static final String TAG = "ClipImageView"; public ClipImageView(Context context) { super(context); } public ClipImageView(Context context, AttributeSet attrs) { super(context, attrs); } public ClipImageView(Context context, AttributeSet attrs, int defStyle) { super(context, a
Android 4.0では、デバイス間の通信を手軽に実装できるようになりました。デバイス同士をかざすだけで情報交換できるAndroid Beamについて学びます。 第2回では、Android 4.0から追加された新機能「Android Beam」を紹介します。今回はAndroid Beamを用いたメッセージ交換アプリを作成します(図1)。 Android Beamとは? 4.0から追加されたAndroid Beamは、Near Field Communication(NFC:近距離無線通信)の規格に従って、デバイス間で情報のやり取りを手軽に行うための機能です。NFCに対応したデバイス同士ならば、お互いをタッチするだけで自分の連絡先やお気に入りのWebページなど様々な情報を共有できます。 実は、スマートフォン向けのOSであるAndroid 2.3系からNFCに対応していました。2.3では、N
こんにちは! 今回から「Android Tips」と称しまして、Android開発の小ネタを少しずつ公開していきます。 簡単なものからふと発見した小ネタなど、幅広く紹介できればと思います。 テーマ「Viewでお絵かき」 さて、今回は「Viewを使ったお絵かき」についてご紹介します。 Viewとは? そもそも、Viewとは何か簡単にご説明したいと思います。 Viewとは、その名の通り「見えている」ものです。つまりUIコンポーネントです。 ボタンや画像など、画面上に表示されるものはすべてViewを継承したクラスです。 今回はこのViewを使ってお絵かきしていきます。 お絵かきできるViewを作る それでは、お絵かきできるViewを作っていきましょう。 今回のサンプルでは、Viewのタッチイベントを取得し、タッチされた場所に線を描いていきます。 1.Viewを継承したクラスを作成する まずはVi
してみたけど、広告がうざいのでまだ引っ越さないよ。 スケジュールされたバックアップタスクが実行された際に外部メディアが外れているとタスクは遅延するが、メディアが接続されるとこのように丁寧且つローカライズされたダイアログが出て、タスクを再開するように促される。 素晴らしい対応だ。 これならば標準アプリにも負けない出来であり、購入しかないだろう。というか、買う。 ところで「アーカイブのコンテンツをプルーンします」の"プルーン"ってなんだ? もう何度目だろうか。 ReSharper6まで上げたはいいが殆ど使わずに他のプラットホームの仕事に移ったものの、なぜか現在WPFアプリを書いている最中だが、今後1年間コンスタントにWindowsアプリケーションを書いている保障は全く無いわけで※、今回はさすがにバージョンアップは見送ろうと思ったのだが、ReSharperを使ったコーディングは一度経験してしまう
いろいろ癖のあるListViewだけど、どう見てもバグな感じがする部分をみつけた。 ListView#LayoutChldren()で if (mItemCount == 0) { resetList(); invokeOnItemScrollListener(); return; } else if (mItemCount != mAdapter.getCount()) { throw new IllegalStateException("The content of the adapter has changed but " + "ListView did not receive a notification. Make sure the content of " + "your adapter is not modified from a background thread, bu
はじめに 前回のエントリに引き続き、今回は QR コードの生成を試してみたいと思います! Button を 押すと EditText に入力された文字列を Bitmap に変換し ImageView に表示するサンプルを作ります。 ZXing の概要とライブラリの導入について知りたいかたは前回のエントリを参考にしてください。 Activity の作成 まずは Activity をサクッと作ります。Bitmap の生成は非同期で行いたいので AsyncTaskLoader を呼べるよう FragmentActivity を継承しておいてください。 activity_generate.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/r
Android 画像合成 画像の合成(になるのかな…)は簡単です。 CanvasオブジェクトにBitmapインスタンスの画像をdrawしまくるだけです。 座標指定もできます。 1.Bitmapインスタンスを作成 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.original); // 合成元 Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.d1); // 合成素材1 Bitmap bitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.d2); // 合成素材2 2.Canvasインスタンスを作成 int width =
以下のような機能を実装したい。 カメラを自作するのではなく、標準のカメラアプリで画像を撮影する。 撮影した画像はSDカードに保存する。 他の文字列などのデータとともに撮影した画像をPOSTでサーバーに送信する。 サーバー側の負荷やパフォーマンスを考慮し、画像を縮小して送信する。 0. 前提 ターゲット:2.2以上 1. SDカードが挿入されているか確認する // PictureUtil.java public static boolean isSdCardWritable { String state = Environment.getExternalStorageState(); return state.equals(Environment.MEDIA_MOUNTED); } SDカードに保存したいため、外部ストレージの状態を確認するメソッドをユーティリティクラスに定義する。 以下でも
以前、RubotoでNFCのIDmなどを読んでみたため、今度はSuicaやEdyの履歴などを読もうかと考えましたが、自分で実装するには時間がかかりそうでした。 そのため、良いものがないかを探したところ、Kazzzさんのライブラリ「nfc-felica」がありました。ありがたい限りです。 nfc-felica - android nfc access felica, ISO15693 raw command - Google Project Hosting ライブラリに付属しているアプリを見てみると、Suicaの読み取りについては実装されていたものの、Edyなど他のFeliCaの読み取りについては実装されていませんでした。 そこで、ライブラリの使い方を学びがてら、Suica・Edyの履歴読み取りをするアプリをRubotoで作ってみることにしました。 環境 Platform JDK ant R
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く