2011年8月22日月曜日

android Tabを必要な時だけ表示する

Tabを使ったアプリで必要な時だけタブを出す方法。


まずはタブを追加
※ 前提として、既にタブが2つ設定されている

TabHost mTabHost = getTabHost();
TabSpec tab3 = mTabHost.newTabSpec("TAG3");
tab3.setIndicator"tab3");
tab3.setContent(R.id.content3);
mTabHost.addTab(tab3);

これでタブが表示される。
次はタブの削除

	@Override
	public void onTabChanged(String tabId) {
		if(mTabHost.getTabWidget().getTabCount() >= 3
				&& mTabHost.getCurrentTab() != 2) {
			Log.d("tabChanged", "remove tab");
			mTabHost.getTabWidget().removeViewAt(2);
		}
	}

追加された状態かをチェックして、他のタブにフォーカスが移ったら
TabWidgetからremoveViewすればOK。

2011年8月19日金曜日

proguardの注意

一昨日、あまりに売れないから放置してたアプリでエラーが出てることを知りました。2週間放置しちゃって、買ってくれた方ごめんなさい…。

原因は難読化のproguardが悪さをして、xmlのandroid:onClickで指定したメソッドが見つからないことでした。多分、エミュレーターや実機に実行してテストしてる人が多いと思うけど、exportした時だけ発生する現象なのでご注意下さい。

回避策は

-keepclassmembers class * extends andriod.app.Activity {
   public void *(android.view.View);
}

をproguard.cfgに追記する。
そうすると、対象部分は難読化されないため、xmlの指定で見つけられます。

*部分は具体的なクラス名、メソッド名でもOK。
下記を参考にしました。
http://stackoverflow.com/questions/6666292/android-onclick-events-and-pro-guard

2011年8月4日木曜日

SVGをBufferedImageに変換する方法、拡大縮小する方法

ソース書きたいとこだけど、会社で使うので書けない…
ということで、参考にしたサイトを紹介。
http://bbgen.net/blog/2011/06/java-svg-to-bufferedimage/

英語だけど、開発者ならわかるはず!
拡大縮小は渡すwとhを変えればオッケー。
ほとんど画質に影響ありません。

ただ、不思議な拡大縮小で、縦横比維持で小さい方の倍率に合わせて拡大縮小して、余ったスペースは横は左、縦は下に余白になる。試したのが透過のだったから、透過領域が広がってました。

ご参考までに!

2011年8月3日水曜日

検索に復帰

新しいアドレスが反映されました!
古いの消えてたから、反映に時間がかかる模様。

GoogleのWeb検索の追加とかもしたけど、それだけだと旧は残るだろうから。ボットの巡回周期の問題とかかな。