前回の知っておいた方が良い事②のImageViewにスクロールバーを付けます。 ②のImageViewに何も加えないと、スクロールバーが長くなってしまいますが、 android:adjustViewBounds="true"を加えることによって、スクロールバーが画像の大きさにフィットしてくれました。 android:adjustViewBounds="true" >
今作っているAndroid用アプリで、Desireにデフォルトで入ってるギャラリーアプリのように、画像を拡大したときにドラッグで画像内移動をできるようにしたいと思って研究中なのだけど、なかなかうまくいかない…。 最初はアニメーションで拡大したものをドラッグでと思っていたのだが、今のところこの方法ではうまくいってない。 次に、ImageViewでScaleTypeをmatrixにして、やっている最中。アニメーションはまだ実装できていないが、微妙にやれそうな感じがしている。ただ、課題も多い…。それにアニメーションを付けられるのか?という感じ…。 同僚に、「iPhoneアプリのときにはScrollViewを使って云々…」というのを聞いて、なるほど!ScrollViewを使うという方法があったか!?と思ってやってみるも、横スクロールができんじゃないか!?と思って憤慨していたら、横スクロールはHor
今風に書き直した記事がありますので、合わせて参照ください。 blog.webarata3.link EditText EditTextはTextViewのサブクラスであるためTextViewと同じ属性が使用できる。ここではEditTextで使える属性を説明する。 入力制限関連属性 入力制限やIMEの制御をする属性は以下となる。 属性 説明 digits 入力可能な数値、記号の文字セットを指定する。指定した文字以外の入力ができなくなる。 inputType 入力する内容に応じたソフトウェアキーボードを表示する。 まずdigitsの例を見る。共通のstrigns.xmlは以下。 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, MainActivity!</string> <
Activity を起動したときに EditText にフォーカスがあたるようになっていると 自動でソフトキーボードが出ることがあります。 これを防ぐには Window の setSoftInputMode() で SoftInputMode を設定します。 こんな感じ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); setContentView(R.layout.main); } ここでは、SOFT_INPUT_STATE_ALWAYS_HIDDEN を使っていますが、 SOFT_I
Androidには標準でいろんなダイアログが用意されています。これまでに紹介したダイアログは警告表示(AlertDialog)、時刻入力(TimePickerDialog)、日付入力(DatePickerDialog)などです。 今回は、文字入力など開発者がより自由に使えるダイアログのカスタマイズについてご紹介します。ActivityのshowDialog()とonCreateDialog()を使えば簡単にレイアウトファイルを適用した、カスタムダイアログを作成できます。 続きはサンプルコードと詳細です。 ひな形 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //buttonを取得 Bu
ProgressDilaog は java.lang.Object ↳ android.app.Dialog ↳ android.app.AlertDialog ↳ android.app.ProgressDialog を使います というわけで、ProgressDialog をいじってみた サンプルプログラム import android.app.Activity; import android.app.ProgressDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; public class ProgressDialogTest extends Activity implements Runnable { ProgressDialog pr
お久しぶりです。長く間が開いてしまいました。 現在androidの勉強をしている最中です。その中で出来たことを備忘録的に記録。 androidのActivityのひとつ、PreferenceActivityでListPreferenceを使っているケースについて。 事の発端は「ListActivityで設定をしても、何設定したかが判りにくいなぁ…サマリーに表示できないかなー。」ということから。 以下具体的な実装 public class OptionActivity extends PreferenceActivity implements OnPreferenceChange{ ListPreference lPref = null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanc
アプリ説明 メイン画面でメニューを押す PreferenceActivityが起動 メニュー1を選択 カスタムDialogPreferenceが起動する ごにょごにょと 構成 Activity 起動画面:SampleDialogPreference 設定画面:SettingActivity DialogPreference カスタムDialogPreference:SimpleDialogPreference リソース menu:menu.xml xml:setting.xml 作成手順 プロジェクト作成 SampleDialogPreferenceという名前でプロジェクトを作成 設定画面の追加 PreferenceActivityの追加 Name : SettingActivity Superclass : PreferenceActivity ManifestファイルにSettingA
たまには技術のことも書かないとね。 っということで昨日作ったクラスについて書きたいと思います。 Preferenceは設定画面を簡単に作ることができるというものですが、この中には以下のようなものがあります。 ・ListPreference ・EditTextPreference ・CheckBoxPreference ・RingtonePreference ・Preference 本来ならこれらだけでいいのでしょうが、私としてはVFギャラリーでどうしても(?)DatePickerを表示するPreferenceが必要でした。 仕方ないのでDatePickerPreferenceというのを作ってみました。 xml/preference.xmlには通常の自作Viewと同じように宣言したらいいので省略します。 作成したクラスの仕様は以下のとおり。 1) 設定画面から選択するとDatePikerが設
AndroidのDatePickerやTimePickerは日付・時刻の入力を行うためのコンポーネントであるが、数値を1単位でインクリメント・デクリメントするための機能しかない。 例えば、時刻を入力するとき、1分間隔で入力することは少なく5分とか10分間隔で入力することが多いが、標準のTimePickerで実現できなかった。 そのため、TimePicker内部で使用しているNumberPickerを自作して使用していた。 このとき、下記の問題が発生していた。 apkファイルの肥大化(NumberPickerが内部で使用するリソースファイルをapkファイルに持つため、apkファイルのサイズが大きくなる) Android SDKからコピーしたリソースファイルを流用しているので、カスタムUIを使用している端末(Xperia、Desire等)と同じにならない(背景色とか)。 この問題を解決するため
Viewコンポーネントのタッチイベントについて、もう少し詳細に説明します。 たとえば画面を指で触ったとき、触った指を離したとき、画面上をスライドさせたとき、などその契機ごとにOnTouchListenerが呼び出されます。 タッチした時間や位置(座標)、押す強さなんかもリスナーで取得できるようです。 import android.app.Activity; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.LinearLayout; public class MyClass extends Activity implements OnTouchListener{ public void myMet
『ちょっとだけ立体風地図ビューワ』で、ユーザーに操作を行ってもらうボタン類を、Google Mapの拡大縮小ボタンのように画面上に表示して、操作がなければ自動的に消したいと思ったので、自動的に消えるボタンを作ってみました。 1.考え方自動的に消えるボタンをどのように使うかによって、実現方法は変わってくると思います。今回は、次のような用途で使うことを前提に作りました。FrameLayoutを使い、地図と自動的に消えるボタンを重ねておく(最初ボタンは見えなくする)画面にタッチすることで、ボタンを表示するボタンに対して操作がなければ、自動的に消えるボタンに対して操作があれば、表示したままにするボタンに対する操作が終われば、一定時間後自動的に消える表示の切り替えは、Viewのvisibilityを切り替えることで行うことにします。また、一定時間たってから表示を消すために、タイマーを使うことにします
Actionの取得と発生順序 最もよく使うのは、UP,DOWN,MOVE,CANCELに代表されれるActionです。 @Override public boolean onTouchEvent(MotionEvent event) { Log.d("TouchEvent", "X:" + event.getX() + ",Y:" + event.getY()); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: Log.d("TouchEvent", "getAction()" + "ACTION_DOWN"); break; case MotionEvent.ACTION_UP: Log.d("TouchEvent", "getAction()" + "ACTION_UP"); break; case MotionEv
Android (ソースコード解説) SlidingDrawerでwrap_contentを効かせつつ表示/非表示での高さを切り替える SlidingDrawerを使って、「Gmailアプリでチェックボックスにチェックを入れたときに表示されるボタン群」のようなものをきれいに実現する方法です。 ソースコードのポイントを解説します。 ※完成イメージと、それに至るまでの問題は以下で説明しました。 Android SlidingDrawerでwrap_contentを効かせつつ表示/非表示での高さを切り替える ※ソースコードは以下に掲載しました。 Android (ソースコード掲載) SlidingDrawerでwrap_contentを効かせつつ表示/非表示での高さを切り替える 1. SlidingDrawerのlayout_height="wrap_content"を有効にする onMeasu
■ Converting from dips to pixel Android refenrece の Converting from dips to pixels に書いてある getContext().getResources().getDisplayMetrics().density で画面解像度の比率を取得して、dip, dp 単位の値に掛ければ pt, px 単位での値になる dip -> px // The gesture threshold expressed in dip private static final float GESTURE_THRESHOLD_DIP = 16.0f; // Convert the dips to pixels final float scale = getContext().getResources().getDisplayMetrics
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く