2013年3月13日水曜日

custom view をScrollView に表示

うまくいかない。
修正前のソースコード
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

public class testView extends View {

 public testView(Context context, AttributeSet attrs) {
  super(context);
  setFocusable(true);
  Log.v("testVire", "testVire(Context context");
 }

 protected void onDraw(Canvas canvas) {
  super.onDraw(canvas);

  // 通常はグラフィックを描画するコードをここに記述する。
  canvas.drawColor(Color.BLUE);

  Paint paint = new Paint();
  Bitmap bitmap = Bitmap.createBitmap(200, 500, Bitmap.Config.ARGB_8888);
  Canvas bitmapCanvas = new Canvas(bitmap);

  paint.setColor(Color.RED);
  bitmapCanvas.drawColor(Color.BLACK);
  bitmapCanvas.drawCircle(50, 50, 40, paint);
  canvas.drawBitmap(bitmap, 10, 10, null);

  Log.v("testVire", "onDraw");
 }
}




修正後のソースコード
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

public class testView extends View {
 
 public testView(Context context, AttributeSet attrs) {
  super(context);
  setFocusable(true);
  Log.v("testVire", "testVire(Context context");
 }
 
 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
     setMeasuredDimension(200, 500);
     Log.v("testVire", "onMeasure" + widthMeasureSpec);
 }
 

 protected void onDraw(Canvas canvas) {
  super.onDraw(canvas);
  
  // 通常はグラフィックを描画するコードをここに記述する。
  canvas.drawColor(Color.BLUE);
  
  Paint paint = new Paint();
  Bitmap bitmap = Bitmap.createBitmap(200, 500, Bitmap.Config.ARGB_8888);
  Canvas bitmapCanvas = new Canvas(bitmap);
  
  paint.setColor(Color.RED);
  bitmapCanvas.drawColor(Color.BLACK);
  bitmapCanvas.drawCircle(50, 50, 40, paint);
  canvas.drawBitmap(bitmap, 10, 10, null);
  
  Log.v("testVire", "onDraw");
 }
}

onMeasureメソッドを追加した

なぜか、XMLレイアウト画面でドラッグして追加できなくなった。




関連記事

0 件のコメント:

コメントを投稿