2015年5月15日金曜日

Androidアプリの背景を透明に

Androidで画面が透過されたActivityを作るには、AndroidManifest中の、該当activityの設定に
android:theme="@android:style/Theme.Translucent"
または、
android:theme="@android:style/Theme.Translucent.NoTitleBar"
を追加します。

一瞬たりとも黒い画面になることなく、できます。

これ、すごい面白いことできそう

UIの必要ないActivityを作るのにも使えそうですし、普通にその上に文字とか書いても面白そう

参考:
http://www.adakoda.com/android/000265.html

2015年5月12日火曜日

AndroidのBitmap+Matrixの回転の中心は何処?

Android Studioでの開発は、クールではないですが、Android SDKに関するドキュメントはとても体系的にまとめられており、わかりやすいです。
で、それを読んだにも関わらずはまったこと。
Matrix matrix = new Matrix();
matrix.setRotate(45, bitmap.getWidth()/2,bitmap.getHeight()/2);
canvas.setMatrix(matrix);
canvas.drawBitmap(bitmap, width-bitmap.getWidth(), height-bitmap.getHeight(), null)
を実行した時、matrixがいつかけられるのかという話。

開発している時、ずっとmatrixをかけてから描画するものだと思い、回転の中心を画像の中心のつもりで値を設定していました。 それにも関わらず、回転しかさせていないのに何故か移動する! 不思議すぎて不思議すぎて悩んでいると、なんと描画してから回転のようで、回転の中心を画面全体の絶対座標にするとちゃんとできました・・・

これで解決!