Androidでメニューが出ないとか、LightingColorFilterとか
Androidのメニューが出ない
今回はAndroidアプリ作成で少しはまった部分をちょー適当に速記程度にメモ書きしています。
まず、Android1.6に対応させるために、AndroidManifest.xmlに「uses-sdk android:minSdkVersion="4"」と設定してるのだけど、AndroidManifest.xmlの「uses-sdk android:minSdkVersion="4" android:targetSdkVersion="18"」のようにtargetSdkVersionが11以上になってると「メニュー」が出ない仕様だという事が分かったw
なので、android:targetSdkVersionを10以下に設定するか、設定しない等して回避
LightingColorFilterについてのメモ書き
pathとbitmapでは描画方法が異なるので、bitmap用のpaintのインスタンスに「setColor」をしても反映されない。
なので、今回のブラシ機能追加で、ブラシのPNG画像の色を変更する為に「LightingColorFilter」を使用。
※Drawble、ImageViewは「setColorFilter (int color, PorterDuff.Mode mode)」で、xmlのImageViewには属性で「android:tint=""」で画像の色を変更出来る事も分かった。便利ですなぁ。。
こんな感じ
↓
省略(setAlphaはint型の変数で255を代入済み)
// ブラシを作成
brush = BitmapFactory.decodeResource(getResources() , R.drawable.brush_spray);
filter = new LightingColorFilter(0xFFFFFF, Color.argb(setAlpha, 233, 84, 107));
bPaint = new Paint();
bPaint.setFilterBitmap(true);
bPaint.setColorFilter(filter);
// ちなみにこっちがペン
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setDither(true);
mPaint.setColor(Color.argb(setAlpha, 233, 84, 107));
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(6);
これでブラシにも色が反映されて、ペイントソフトとしての体をなす事が出来ましたというメモ書きです。
ブログ移行してます → Newとまとじゅーすのブログ