■画像描画
画像描画には2つの方法がある
- main.xmlででの表示
- Viewerクラスを継承して新規に作成しての表示
Viewerクラスを継承してのMyViewerを表示にはmain.xmlに独自Viewerの
パスを指定する必要がる。(com.hogeがそれ。)
なお、以下のどっちでも表示できる。
setContentView(R.layout.main); //setContentView(new MyView(this));
main.xmlを使用したときは、Viewerクラスの引数2つのコンストラクタが呼ばれる。
■画像表示
画像表示には2とおりある
- BitmapFactoryで画像を作成し、それをCanvasで表示
- Resourcesでgetした画像をDrawableで表示
ということで以下、Viewソース
public class MyView extends View{ private Context context; // private Bitmap image; private Drawable drawable; public MyView(Context context) { super(context); this.context = context; } // main.xml使用時はこっちが呼ばれる public MyView(Context context, AttributeSet attrs) { super(context); this.context = context; Resources resources = context.getResources(); // image = BitmapFactory.decodeResource(resources, R.drawable.pose08_g); drawable = resources.getDrawable(R.drawable.pose08_g); } protected void onDraw(Canvas c) { super.onDraw(c); c.drawColor(Color.GREEN); /* if (image != null) { c.drawBitmap(image, 10, 10, new Paint()); } */ if (drawable != null) { drawable.setBounds(10, 10, 310, 310); drawable.draw(c); } int w = this.getWidth(); int h = this.getHeight(); Paint p = new Paint(); p.setStyle(Style.STROKE); p.setColor(Color.DKGRAY); c.drawRect(new Rect(5, 5, w-10, h-10), p); for (int i = 0; i <10; i++){ Paint p2 = new Paint(); p2.setStyle(Style.FILL); p2.setColor(Color.rgb(25*i, 0, 0)); c.drawCircle(25 * i + 125, 25 * i +125, 100, p2); } } }
0 件のコメント:
コメントを投稿