幸福なプログラマ

プログラマは幸福になれる。

2014-01-01から1年間の記事一覧

ViewのVisibleが変化した際に起動するイベントリスナを作る。

1.イベントリスナをセットしたいViewを継承した独自Viewクラスを作成する。 public class MyTextView extends TextView { public MyTextView(Context context) { super(context, null); } } 2.イベントリスナのインタフェース・メンバ変数・セットメソッドを…

Android StudioでBreakpointの一覧表示

Android Studioで、設置したBreakpointの一覧を確認したい場合 ctrl+shift+F8 で以下のような子画面が表示されるので、そこで一覧表示・削除・設置等を行うことができる。

罫線のついたtextareaをcssで実現する。

css

ノートみたいな罫線をtextarea内に描画したい場合、以下のようなcssを記述することで実現できます。 textarea { font-size: 15pt; line-height: 31px; padding: 31px; /* テキストエリアに陰をつける */ box-shadow: 0.2em 0.2em 0.5em black; /* 罫線描画(…

Android StudioでUpperCase・LowerCaseのショートカット

ctrl + shift + u

1箇所だけ角丸のViewを作る

角丸のViewを作りたい場合は、以下のようなxmlを用意して対象のViewのBackgrounに指定することで実現できます。 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#fff" > </solid> <corners android:radius="30dp" /> </shape> それを↑の画…

ActionBarからアイコンを消す

AndroidのActionBarからアプリアイコンを消したい場合は、独自に定義したstylesに以下の1行を加えます。 <resources> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- ↓コレ --> <item name="android:icon">@android:color/transparent</item> </style> </resources> こうすることで以下のようにActionBarのアイコンが表示されなくな…

Android Studioで全文検索

Android Studioで全文検索したいときは Edit→Find→Find in path を選択して出てきた子画面のText to findにキーワードを入れてFindボタン押下で実行できます。 Optionsの意味は↓みたいな感じ。 名前 意味 Case sensitive 大文字と小文字を区別して検索。 Who…

Android Studioのバージョンを0.6.0に上げたときに出るエラーの対処法

Android Studioのバージョンを0.6.0に上げた際、既存のプロジェクトで以下のようなエラーが出ました。 Error:The SDK Build Tools revision (19.0.3) is too low for project ':app'. Minimum required is 19.1.0 Android SDKのリビジョンが古いということな…

新人教育に際して気をつけたいこと

先日、devlove名古屋のオブジェクト設計とリーン開発、その実践に参加した際、最後の質疑応答で増田さん(@masuda220 ](https://twitter.com/masuda220))が仰っておられたことが心に残ったので文章に残しておきます。 最後の質疑応答の時間に増田さんに対し…

非同期処理にはThreadを直接使わずにExecutorServiceを使用する

一個前の記事 で MyRunnable runnable = new MyRunnable(); Thread thread = new Thread(runnable); thread.start(); みたいな感じでThreadクラスのコンストラクタにRunnable実装したサブクラスを渡して非同期処理をしようと書いたけれど、以下の観点からお…

Threadクラスの継承ではなく、Runnableインタフェースを実装したクラスに処理を委譲する

javaで非同期処理を実現する際、以下のようにThreadクラスを継承したサブクラスを作成し public class MyThread extends Thread { @Override public void run() { // 非同期処理 } } 下記のように呼び出すと思います。 MyThread thread = new MyThread(); th…

javaのenumで要素数を取得する

enum Sample { ONE, TWO; } private int getSampleLength() { return Sample.values().length; } values()でenum型の配列が取得できるので、lengthを呼べば配列の要素数を取得できる。

AndroidでSQLiteを使用する

データ定義 AndroidでSQLLiteを扱うにはSQLiteDatabaseクラスを使用します。 このSQLiteDatabaseのインスタンス生成を簡略化してくれるのがSQLiteOpenHelperです。 SQLiteOpenHelperは抽象クラスであり、DBオープン時、テーブルのバージョンアップ時の実装を…

Android4.1以下でRelativeLayout.LayoutParamsの相対位置指定を動的に削除したい

RelativeLayoutの相対位置をプログラム中で動的に削除する際RelativeLayout.LayoutParams#removeRuleを使いたいのだけれどAPIレベルが16以下の場合実装されていないため使うことができない。(NoSuchMethodErrorが発生する。) RelativeLayout.LayoutParams …

Androidで振動の実装

AndroidManifestに設定を追加して <uses-permission android:name="android.permission.VIBRATE"/> 以下の1行を書くだけ。 ((Vibrator)getSystemService(VIBRATOR_SERVICE)).vibrate(100); vibrateの引数にミリ秒を渡すことでその時間だけ振動を続けます。 これで震えなかったら当該端末がVibratorに対応していないという</uses-permission>…

ノンデザイナーズ・デザインブック 4つの基本原則

デザインの4つの原則 上手なデザインに共通して見つけることができる4つの基本原則の概要を示す。 1.近接 関連する項目は近づけてグループ化する。いくつかの項目が互いに近接しているとき、それらは1つの視覚的ユニットとして認識される。 これにより情…

Mac OS X のDock風の表現をcssで実現する

css

やりたいこと できあがったもの コード <section id="dock"> <img src="http://f.st-hatena.com/images/fotolife/j/javabayashi/20140503/20140503131045.jpg?1399090451" /> <img src="http://f.st-hatena.com/images/fotolife/j/javabayashi/20140503/20140503131045.jpg?1399090451" /> </section>

floatでいろいろ寄せる

css

左に寄せる こんな感じで見出しを左に寄せたいときは、cssでfloat:leftの設定を行う。 同様にfloat:rightを設定すれば見出しは右に寄ります。 h1 { float:left; } floatプロパティによる流し込みを解除する float: both; 画像を並べて表示する 先行するフロ…

拡張forをIterable#forEachで置き換える

java5で導入された拡張forのおかげでListから要素を取り出す際の記述を簡潔に行えるようになりましたが、java8でIterableインタフェースに追加されたfoEachメソッドを使用することで更に簡潔に記述できます。 リストから文字列を一つづつ取り出して表示する…