Hi, I have a LinearLayout with two views inside, the inside view is a custom view. Drawing problem I am facing, my custom view just draws six rects on itself, please see RecView.java (shown as bellow). It is only one view can be drawn on screen, why? I aslo used hierarchy viewer to check layout correctly, two custom views are also shown on viewer ().
Emulator and hierarchy viewer screen capture are shown as bellow link. http://picasaweb.google.com/tw.ahhsin/Android_Groups?feat=directlink Anyone know what problem is my program? thanks for any responses. RecView.java public class RecView extends View { final private static String TAG = "RecView"; private Paint mPaint; private int mCount; public RecView(Context context, int count) { super(context); mPaint = new Paint(); mPaint.setColor(getResources().getColor(R.color.background)); mCount = count; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); int left = getLeft(); int top = getTop(); int right = getRight(); int bottom = getBottom(); Rect rec1 = new Rect(0, top, 50, bottom); Rect rec2 = new Rect(50, top, 100, bottom); Rect rec3 = new Rect(100, top, 150, bottom); Rect rec4 = new Rect(150, top, 200, bottom); Rect rec5 = new Rect(200, top, 250, bottom); Rect rec6 = new Rect(250, top, 300, bottom); //Drawing six rects mPaint.setColor(getResources().getColor(R.color.solid_blue)); canvas.drawRect(rec1, mPaint); canvas.drawRect(rec3, mPaint); canvas.drawRect(rec5, mPaint); mPaint.setColor(getResources().getColor(R.color.solid_red)); canvas.drawRect(rec2, mPaint); canvas.drawRect(rec4, mPaint); canvas.drawRect(rec6, mPaint); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension(300, 50); } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { if(changed && left >= (320 - left)) { int newleft = 0; int newTop = (mCount-1)*50; int newBottom = mCount*50; layout(newleft, newTop, 300, newBottom); super.onLayout(changed, newleft, newTop, 300, newBottom); } else { super.onLayout(changed, left, top, right, bottom); } requestLayout(); } } RecViewActivity.java public class RecViewActivity extends Activity { public RecViewActivity() {} @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override protected void onResume() { super.onResume(); LinearLayout layout = (LinearLayout) findViewById(R.id.main_view); layout.setWillNotDraw(false); RecView view = null; for(int i = 1; i < 3; i++) { view = new RecView(this, i); layout.addView(view); } } } --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Beginners" group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~----------~----~----~----~------~----~------~--~---