酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

開発-Android

Androidでセルの並び替えをおこなえるライブラリ「ListViewAnimations」を導入する

iOSのUITableViewのスワイプやセルの並び替えみたいな挙動をAndroidで実現するための「ListViewAnimations」というライブラリがあります。 下記のリポジトリに、ListViewAnimationsのDynamicListViewを実装したものを公開しておきました。GitHubの実装がその…

AndroidでNumberPickerの表示項目数を変更する前にはsetDisplayedValues(null)で初期化する

ここ最近Androidアプリネタが続いていますが、この土日悩んだアプリがクラッシュしてしまう件についてメモしておきます。 やりたいこと 日付ごとに異なった時刻を設定できるNumberPickerがありました。イメージがわきにくいと思うので、別の例で……都道府県が…

Realm Javaのv0.80.3からv0.90.0にアップデートしたらビルドが通らなくなった

久しぶりにRealm Javaを使ったアプリをアップデートすることになり色々と手を入れている最中なのですが、使用しているライブラリのひとつの「Realm Java」も古いバージョンのものを使っていたのでこの機会にアップデートさせようとしました。 この記事ではv0…

Android StudioでKotlinを使ってボタンをタップするたびにカウントが増えていくコードを書く

前回作成したスケルトンプロジェクトを少しだけ弄って、よくあるボタンを押す度にカウントが上がっていくようにしましょう。 content_main.xmlより変更点を抜粋。 layout.xmlにボタンを配置します。ベースがreLayoutなのでViewが被ってしまうのでInearLayout…

Android StudioでKotlinのプロジェクトを作成する

kotlinのスケルトンプロジェクトを作るのは、一旦Javaのプロジェクトを作ってからKotlinのコードにコンバートするのが楽なようです。 Android Studioを起動して、[Start a new Android Studio project]を選択します。 アプリケーション名は適当に「Kotlintes…

Android StudioにKotlinプラグインをインストールする

Kotlinのバージョンがv1.0になったみたいですね。 日本語で書かれた記事はこちらが詳しいです。 そういえば、AndroidでSwiftが使える「RemObjects Silver」がありましたが、アンテナが低いのかあまり話を聞きませんね。 最近、仕事でScalaを使っているのでAn…

Macのhostsの設定をGenymotionへ転送して同期させる

Androidの場合、Genymotionを使って開発をしています。本記事では、MacのhostsをGenymotionでも使う方法を紹介します。 data.example.comに接続するIPアドレスを手動で変えたいときがあります。 例えば、サーバーを開発用と本番用で分けていて、それぞれのサ…

Android(303SH)で音楽を聴く

僕自身あんまり音楽を聴く習慣がないのでAndroidで音楽を聴く方法をしりませんでした。今日、必要になったのでAndroidに音楽を入れてみました。 まず、PC(Mac)とAndroid(303SH)をUSBケーブルで接続しました。USBケーブルでの接続のモードには3つありました。…

Androidで文字列の日付をDate型にパースする(ISO 8601、RFC 1123)

Androidアプリで日時を扱うことが多くなってきました。少し前に「AndroidでHTTPレスポンスヘッダのLast-Modifiedの値を取得する」という記事を書きました。 RFC 2616ではHTTPレスポンスヘッダーに含まれているDateやLast-Modifiedの日付はRFC 1123フォーマッ…

AndroidでChromecast対応アプリを作る

先日のGoogleの新製品イベントでChromecast 2とChromecast audioが発表されました。Chromecast 2はドングル型からペンダント型へのデザイン変更と次の動画を先読みするFast Play機能対応や5GHz対応がメインでしたね。過去モデルとは基本的にあまり変わらなさ…

Androidでヘッドセット(イヤホン)の接続状態の変化を検出する

Androidでヘッドセット(イヤホン)の接続状態が変わったイベントを取得する必要がでてきました。 Androidでヘッドセット(イヤホン)の接続状態の変化を検出する ヘッドセットの状態変更を検出するIntentが用途別に2つ存在しています。Intent.ACTION_HEADSET_PL…

Androidでネットワーク接続状態が変わったイベントを取得する(接続状態の変化を検出する)

ACCESS_NETWORK_STATEの権限が必要なのでマニフェスト(AndroidManifest.xml)でパーミッションの追加をおこないます。 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 次にマニフェストにレシーバーの設定をおこないます。android.net.conn.CONNECTIVITY_CHANGEを拾えるようにします。 <receiver android:name=".ConnectivityReceiver" > <intent-filter> </intent-filter></receiver></uses-permission>

Android Studioを使ってAndroidアプリの新規プロジェクトを作成する

Android Studioのv1.3.2を使って解説します。 Application nameには任意の名前をつけます。ここでは FragmentSample にしました。 Androidアプリのパッケージ名は、jp.ch3cooh.app_nameのように逆ドメイン記法で表します。次のCompany Domainを入力すると、…

【2015/8/31まで】Windows Phoneアプリ開発者は無料でXamarinのライセンスがもらえるよ!

C#でiOSやAndroidのアプリを開発できる「Xamarin」のライセンスを無料で入手できるキャンペーンをやっているようです。 Xamarinの代理店エクセルソフトの田淵さんのブログによると…… 2015/8/17 以前に公開された Windows Phone アプリ個人開発者に無料の Xam…

AndroidでHttpURLConnectionの自動リダイレクトを抑止する

管理が面倒になったのでch3cooh.jpで書いていたコンテンツをこのブログ(はてなブログ)に移動させていっています。移動させるのと同時にリダイレクトするように設定しています。 リダイレクトというのは、旧コンテンツのアドレスhttp://ch3cooh.jp/category/a…

Androidで通知(Notification)が表示されないので調べてみたらSmallIconを設定するのを忘れていた

少しハマった。Androidで通知(Notification)が表示されないので調べてみたらどうもSmallIconを設定しておかないといけないみたい。 仮のものでも使ったら良かったんだろうけど、適当なアイコンがなかったので何も設定していなかったら通知が表示されませんで…

SAMSUNG Galaxy S6 edgeが届いた

先週の日曜日の夕方にパンツからGalaxy S6 edgeが届きました。パッケージはあんまり手がかかってないシンプルなものです。Lumia 800あたりが一番高級感あったように思える(個人の感想です)。 フタを開けたら本体が出てきます。色はゴールドプラチナ!!ウェ…

AndroidでHTTPレスポンスヘッダのLast-Modifiedの値を取得する

アプリケーションで使用する画像ファイルやデータをサーバーに置いて必要に応じてダウンロードすることはよくあります。ただ毎回ダウンロードする必要がないものもあります。そのような場合にはHTTPレスポンスヘッダの最終更新日時Last-Modifiedの値を参照し…

JenkinsでGradleを使ってAndroidアプリをビルドしたときの失敗と対処方法

初めてJenkinsを使ってAndroidアプリをビルドするにあたって発生したエラーとその対処方法をメモしておきます。Android Studioで開くとIDE側でよしなにしてくれるんだけど、コマンドラインからだと自分でエラーに対処しないといけない。自分が引っかかった内…

Xamarin.Androidでアラート(AlertDialog)を使ってメッセージを表示する

Xamarin.Androidでアラートを表示します。 var alertDialog = new AlertDialog.Builder(this); alertDialog.SetTitle("title"); alertDialog.SetMessage("Message"); alertDialog.SetPositiveButton("Positive", (sender, args) => { // Positiveボタンをタ…

Xamarin.Androidの開発Tipsの記事まとめ

随時更新していきます。ここまで書いてから一覧性が悪いような気がしてきました。 Xamarin.Android開発ことはじめ 画面やUIパーツ 画面遷移 テキストを表示させるラベル(TextView) ボタン(Button) 画像を表示するビュー(ImageView) アラート、ダイアログ(Ale…

【解決済み】Xamarin.Androidで「SimpleListItem1」などの組み込みのリストアイテムのレイアウトの定義値が存在しなくって困った件

Xamarin.iOSで作っていたアプリが一通りできたので審査に出しました。同じアプリをXamarin.Androidで作るにあたってリストビューってどうやって表示するんだろうと調べてみました。 ListViewに文字列を表示させるだけであれば難しくなさそうと思って実装して…

「Windows Store App Logo Maker」でiOSやAndroidのスマートフォン向けのアイコンが作れるようになったぞ!

各プラットフォーム向けに同じアイコンを何回リサイズしないといけないんだ。アイコンを作るの面倒くさいと常々考えていました。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElem…

Androidでフェードイン/フェードアウト アニメーションを実装する

Androidで時間経過とともにアルファ値を変化させることで、フェードイン・フェードアウトの実装をおこないたかった。Android 3.0から追加されたらしいObjectAnimatorを使うことで、アルファ値を変化させることが可能なようです。以下のコードでは、getHogeVi…

Androidで繰り返し発生するタイマーを使う

100msごとに実行されるタイマーを使いたかったので調べました。 /** タイマー */ Timer timer = null; /** タイマーを開始する */ private void startTimer() { int firstInterval = 100; int interval = 100; // Timerオブジェクトの生成 timer = new Timer…

「android:largeHeap="true"」で使えるアプリケーションヒープのサイズを拡大する

ガツガツとメモリを食うアプリを作っていて、OutOfMemoryErrorが多発しているのに頭を抱えています。アプリの性質上とりあえず動けば良いものなので、System.gc()を連打してもあまり効果がありませんでした。今日色々と調べていたところ、AndroidManifest.xm…

AndroidでVideoViewを使って動画を再生させる

以下のようにlayout xml画面が定義されているとします。 <VideoView android:id="@+id/video_view" android:layout_width="748px" android:layout_height="518px" /> VideoViewにて動画の再生をおこなうには、動画ソースの設定をおこない、その後再生をおこないます。動画ソースの設定は、動画ファイルのURLもしくはファイルパスを使います。ここでは仮にボタンがタ</videoview>…

AndroidでImageButtonのボタン部分を非表示にする

ImageButtonにImageを設定しておいても、ボタンの上に画像が表示されるという非常に滑稽な状態となる。設定した画像だけを残して、ボタンの表示を消す場合は、backgroundプロパティに「null」を設定します。 android:background="@null" 実際にlayout.xmlで…

AndroidでImageViewのマージンを変更する

Androidアプリのド短期案件対応中です。かなーり久しぶりなので本を読んだり、ネットで調べながら昔の勘を取り戻しながら進めています。下図のようにSlideBarの変化に伴って、バーの上部に配置したImageViewを連動させて動かしたいと考えています。そもそもV…

Androidアプリでのページめくりを実装する方法

Flipboardのようなページめくりが格好良かったので、Androidでどうやって実装ができるのか調べてみました。 Flipboardをご存じでない方は、こちらのリンクをご覧ください。ページめくりは、どのように実装されているのでしょうか?Flashでの実装ですが、基本…