[メモ]ShapeDrawableでの角丸(RoundRectShape)
Shape系の画像を用意する際に一部分だけ角丸を適応させたいってことがあります。んでXMLだとcornerタグでむにむにできるのですが、ShapeDrawable で画像作るときはRoundRectShapeを使って作ります。んでcornerタグにあたる部分が忘れがちになるのでメモる。/*outerR に角丸情報を入れる。値は左からtop-left,top-right,bottom-right,bottom-leftなので上側だけ丸くしたいならfloat[] { 12, 12, 12, 12, 0, 0, 0, 0};となる。↓は左側だけ丸くする。*/float[] outerR = new float[] { 12, 12, 0, 0, 0, 0 , 12, 12};//ShapeDrawableを作るときのRoundRectShapeのouterRadius箇所(第一引数)にさっきのを適応しておくShapeDrawable mShapeDrawable = new ShapeDrawable(new RoundRectShape(outerR, null,null));//これは色ですmShapeDrawable.getPaint().setColor(0x663333FF);んな感じ。簡単なもんなのでSCは撮ってません。コードから作るメリットは汎用的に設定を変えれるので画像数が多い場合はサイズダウンできるかと。XMLファイルも数が多いと馬鹿にならないくらい容量とるんで・・・んでば。