道路脇のさくら

小松に向かっていた所、道路脇ですでに開花している桜をみつけました。

金沢では昨日(30日)に開花宣言が出たばかりですが、同日既に満開。
気が早いやつです。

近くの桜も満開になっていましたので、どうやらこの辺りはよっぽど生育条件が良いのでしょう。

IMG_2885.jpg

IMG_2940.jpg

IMG_2934.jpg

非Retinaイメージ作成ツール公開

Retina用イメージから非Retina用イメージを作るのが面倒なので、簡単なツールをつくってみました。

ダウンロード↓
[download id=”1″]

スクリーンショット
retinashrinker1

png、jpgファイルをFinderからDROPすると、縦横のサイズをそれぞれ50%にリサイズした画像を生成し、同じ場所に保存します。
また、同時に、もとのファイル(retina用)をリネームして拡張子の前に例の”@2x”を付けてくれます。

例.
hoge.png を dropすると
 ↓
hoge.png — 生成された非Retina用イメージ
hoge@2x.png — dropしたファイル

もちろん”@2x”付きのファイルをdropしてもOKです。

例.
hoge@2x.png を dropすると
 ↓
hoge.png — 生成された非Retina用イメージ
hoge@2x.png — dropしたファイル(なにもしない)

もし、”@2x”付きのファイルが既に存在したときは拡張子の前にアンダーバーを付けてリネームされます。

例.
hoge.png を dropすると
 ↓
hoge.png — 生成された非Retina用イメージ
hoge@2x.png — もともと存在していたファイル
hoge@2x_.png — dropしたファイル

このようにdropしたファイルやretina用だと思われるファイルは勝手に消さないようにしています。
一方で非retina用として生成されるファイルは問答無用で上書きしますのでご注意下さい。

非商用、商用問わず自由に使って頂いて結構ですが、
このアプリケーションを使用した事により、いかなる損害が発生しても作者は一切の責任を負いません。
自己責任でご利用下さい。

[更新履歴]

ver1.0.3
・高さ、幅が1ピクセルのイメージを縮小した時に不正なイメージが生成される不具合を修正

アクティビティ呼び出し時に値を受け渡すサンプル

呼び出し元のActivity
UriとStringを渡しています。

Intent intent = new Intent(this,NextActivity.class);
intent.putExtra("key_filename", filename);
intent.putExtra("key_uri",  Uri.parse("xxxxxx"));
startActivity(intent);

呼び出されたActivity

Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String filename = bundle.getString("key_filename ");
Uri uri = (Uri)bundle.get("key_uri");

BACKボタンが押された時に特定の処理を行う方法

androidの特徴的な機能である戻るボタン、これが押されると通常は前のactivityにもどりますが
別の処理をさせる方法です。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

  if(keyCode==KeyEvent.KEYCODE_BACK){

    //ここに記述
  }
  
  return super.onKeyDown(keyCode, event);
}

戻り値にtrueを返すと、キーイベントは消費されたことになり、次のレシーバーへ通知されません。
(つまり、前のactivitiに戻りません)
falseを返すと次のレシーバーが処理を行います。

SeekBarを画像でカスタマイズ

Seekbarの背景画像とつまみを画像で変更する方法です。

下記のようなxmlをdrawableに用意して

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
  <item android:id="@android:id/background" >
    <bitmap android:src="@drawable/seekbar_image"></bitmap>
  </item>

  <item android:id="@android:id/progress" >
    <clip>
      <bitmap android:src="@drawable/seekbar_prog_image"></bitmap>
    </clip>
  </item>
</layer-list>

※ seekbar_image、seekbar_prog_imageはpngなどのdrawableリソース

このxmlをdrawableをprogressDrawableにセットすればOKです。

今回はコードでの設定例

Drawable drawable = getResources().getDrawable(R.drawable.seekbar);
seekBar.setProgressDrawable(drawable);

つまみを変更する時は下記のようにthumbに設定すればいいようです。

Drawable drawable = getResources().getDrawable(R.drawable.seekbar_thumb);
seekBar.setThumb(drawable);