Android開発してて思った

Android開発をしていて思ったことを書いていきます

戻るボタンのイベントを取得する方法

場合によって戻るボタンを押したときに画面を戻りたくない場合があると思います。戻るボタンのイベントを取得するにはActivity.onKeyDown()で処理を行います。引数のkeyCodeに何のボタンが押したのか入っているので 戻るボタン(KeyEvent.KEYCODE_BACK)で分…

ActionBarのメニューアイテムを消すには

メニューを消すには onCreateOptionsMenu()の引数MenuのfindItem()メソッドを使い メニューアイテムを取得して、そのアイテムを表示をsetVisible()でfalseにします @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.on…

ListFragmentから子ビューを取得して変更する

ListFragmentで子Viewを取得する方法です。リストから選択してタップした場合にはOnClickListenerでViewを取得しているので そこから取得すればいいのですが、ActionBarのメニューを押したときに リストの見た目を変更したい場合にはどのようにViewを取得す…

eclipseでインデントを一発で揃える方法

A型人間なので、ソースコードを見ていても インデントが揃ってないとなんとなく気持ちが悪い気してました。だからいままでは手作業でインデントを揃えてましたけど、 さすがに嫌になってきたのでeclipseでそういった機能がないが探してみました。ありました…

ログを出力する

今回はいまさらながらAndroidでログを出力する方法について書きたいと思います。 アプリ開発をしているときにバグを検査するときに、 これってどんな値が入っていたんだろうってのを調べるのに役立ちます。さて、ログを出力する方法は一般的にこのように書き…

レイアウトの変更をアニメーション

Viewを追加してレイアウトを変更するときにアニメーションのように動きながら切り替える方法を紹介します。変更予定のレイアウトに以下のコードを追加します。 android:animateLayoutChanges="true" 例えば、GridLayoutが変更される予定の場合は以下のように…

透明な画面を作成する

大手が作成するアプリには操作説明として通常の画面の上に 操作説明が表示されることがある。アプリでさきのような操作説明画面を表示したい場合は、 透明なActivityを作成して透明な画面を本来の画面の手前に配置するとよい。 方法 AndroidManifest.xml の …

Intentを使って地図を呼び出す

概要 Intentを使って、作成したアプリから地図(Googleマップ)を呼び出す方法です。 地図を呼び出して、指定した位置が表示されるようにします。ソースコードは以下になります。 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); // …

電話を呼び出すには

インデントを使用して電話を呼び出すには、 ブラウザを呼び出すのと インテントに渡すデータに tel: を加えます。 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse("tel:11922964649")); startActivity(inte…

ブラウザーを呼び出すには

指定したURLに移動する この方法はデフォルトのブラウザが呼び出され、指定したURLのページに移動する Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.yahoo.co.jp")); startActivity(intent);…

Androidでアプリ起動時にスプラッシュ画面を表示する

iOSアプリのように起動時に画像が表示されるようにしたいときは Androidでは仕組みが用意されていませんので自前で作成するしかありません。そこで今回はAndroidでのスプラッシュ画面を表示する方法を書きたいと思います。起動してスプラッシュ用のレイアウ…

カメラがついているか確認する

PackageManagerをつかうとその機種にカメラがついているかや、 Bluetooth、NFCかついているかを確認することができます。今回はカメラがあるかをチェックするソースです。 // カメラがあるかないかチェックする Context context = getActivity(); PackageMan…

画像をタップすると拡大表示する(Activity編)

今度はActivityを使って画面をタップしたときの拡大表示をやってみたいと思います。 ソースコード MainActivity.java package com.example.galleryviewsample3; import android.os.Bundle; import android.app.Activity; import android.content.Intent; imp…

画像をタップすると拡大表示する(ダイアログ編)

ギャラリーアプリを作成する場合、画像をタップしたら拡大表示する機能をつけたいと思うはずです。 今回のサンプルは画像アイコンをタップすると、 ダイアログ表示されその中で画像が拡大表示されるというものです。起動時の画面 タップしてダイアログが表示…

Viewを動的に切り替える

はじめに ボタンを押すと画面のビューを別のものに切り替えたい場合があります。 そのときはgetLayoutInflater().inflate(int ResourceId, ViewGroup root)を使えばいいです。 // 変更したいレイアウトを取得する LinearLayout layout = (LinearLayout)findV…

開発環境について

2014年4月の開発環境は以下になります。 このページで使われているサンプルはこの条件で動作を確認しております。 Google Nexus5( LG製 ) AndroidOS 4.4 (kitkat) MacBook Pro 13inch (2014) MacOS 10.9 Mavericks ADT( eclipse + AndroidSDK) Build 22.3

リソースからDrawableを作成する方法

getResources()を使えばよい Drawable drawableMap = getResources().getDrawable( android.R.drawable.ic_dialog_map );

カメラアプリ、setPreviewSize()でエラーが発生する件

Androidでカメラアプリのサンプルを作成したときに parameters.setPreviewSize(width, height) でエラーが発生したので調べてみました。 773: Androidでカメラを使う(1) によれば、setPreviewSize()が廃止になったので getSupportedPreviewSizes()を使っ…

AndroidでGoogle Mapを表示するサンプル

今回でハマったのがGoogle Map APIがV2になっているので ネット上にある日本語情報では古い情報で使えなかったことだ。いまのAPIではキーコードをManifestファイルに書き込めはいい。 注意する点はアクセス権限を忘れずに記述することMainActivity.java pack…

Google Service Libraryでのエラー解決方法

Google Mapを使ってアプリを作りたいからGoogle Service Libraryを使ってみようとしたら以下のエラーが発生した。 Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.ネットで原因を探ってみると以下のサイ…

ストア以外から入手した野良apkをインストールする

ネットを徘徊していたら激怒ぷんぷん丸という言葉からゲーム化にまでしていたのでそこで見つけたapkファイルを動かすために、ストア以外でインストールする方法を調べてみました。 激おこぷんぷん丸iPhone版 | Who made him angry!? 1.「提供元不明のアプリ…

ActionBarについて

ActionBarはAndroid SDK3.0より追加された機能 itemタグに指定する属性 inアイテムのidを指定する iconアイテムのアイコンに使用するリソースを指定する titleアイテムに表示するタイトルを指定する showAsActionアイテムの表示形式を指定する showAsAction…

前画面に戻るをつける

一旦、画面を移動してから戻りたいという場合、ActionBarに戻るボタンを設置するとよい。 ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); そして戻るボタンを押したときのイベントはActivity#onOptionsItemSelected()で…

ActionBarに画像タブを表示させる

こんな感じに画像付タグボタンを作成するにはメニューレイアウトを変更します。 iPhoneのタブ切替みたいな機能がAndroidにもないのかなと探していたところ 発見しました。まずはメニューレイアウトxmlのタブにandroid:iconで画像を指定します。/res/menu/mai…

SplitActionBarの作成方法

Androidで画面の下部にiOSのタブボタンをつくるにはActionBarの一種であるSplitActionBarを使用します。 AndroidManifest.xmlに以下のオプションを追加してください。 android:uiOptions="splitActionBarWhenNarrow" AndroidManifest.xml

VideoViewの使い方(インターネット上の動画を再生)

VideoViewを使えば簡単にAndroidで動画を再生することができます。 設置手順 レイアウトにVideoViewを設置します。 ここではidをvideoView1にします。 レイアウトを作成する activity_main.xml

Androidで画像を使わずにボタンデザインを変更する方法

http://www.abe3.net/2013/05/android-drawable-shape/Androidで画像を使わずにデザインをボタンをデザインする方法 を見て、載っていたソースコードを自分で入力して実行してみた。 うお!ボタンの外観がかわってる。 このすごいところは画像ファイルを使わ…

Eclipse(ADT)でのエディタの文字コードを変更する

昨日Githubに登録したコードを確認していたら、画面で文字化けが発生していたので なんでなのか調べてみたら、Eclipseの文字コードがShift-JIS(MS932)になっていた。 当方、Macを使っているので自動的にUTF-8になっているのかなと思っていたけど、 Shift-JIS…

GridLayoutを使うときの注意

GridLayoutはAPI1.4から導入されたレイアウト方式なので、それ以前のAndroid機でつかうためにはSupport Packを導入する必要がある。 でもそれ以上で対応することにするなら必要ない。 AndroidManifest.xmlを編集する ■変更前■ <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="18" /> ■変更後■ <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="18" /> http://dev.classme</uses-sdk></uses-sdk>…

サンプルプログラムを起動しようとするとINSTALL_FAILED_CONFLICTING_PROVIDERとエラー

http://masterka.seesaa.net/article/244918895.html