Note that there are some explanatory texts on larger screens.

plurals
  1. POcustom View not displayed well in android
    text
    copied!<p>My custom view does not display entirely. Please see my screenshot:</p> <p><img src="https://i.stack.imgur.com/1xU1f.gif" alt="enter image description here"></p> <p>And the source code</p> <pre><code>package com.dots; import android.graphics.Color; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.os.Bundle; import android.view.View; import android.view.WindowManager; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; public class Dots1Activity extends Activity { private static final String TAG = "DotsActivity"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); CustomDrawableView view1 = new CustomDrawableView(this, 50, 50, Constants.DOTS_RADIUS, Constants.DOTS_COLOR); CustomDrawableView view2 = new CustomDrawableView(this, 150, 150, Constants.DOTS_RADIUS, Constants.DOTS_COLOR); CustomDrawableView view3 = new CustomDrawableView(this, 300, 300, Constants.DOTS_RADIUS, Constants.DOTS_COLOR); ll.addView(view1, layoutParams); ll.addView(view2, layoutParams); ll.addView(view3, layoutParams); setContentView(ll); } } class CustomDrawableView extends View implements View.OnClickListener{ private Context context; private int x, y, radius, color; public CustomDrawableView(Context context, int x, int y, int radius, int color) { super(context); this.context = context; this.x = x; this.y =y; this.radius = radius; this.color = color; setOnClickListener(this); } protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(color); canvas.drawCircle(x, y, radius, paint); } protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){ super.onMeasure(View.MeasureSpec.makeMeasureSpec(Constants.DOTS_RADIUS*2, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(Constants.DOTS_RADIUS*2, View.MeasureSpec.EXACTLY)); } public void onClick(View v) { Toast.makeText(this.context, x+"-"+y+"-"+radius, Toast.LENGTH_SHORT).show(); } } public interface Constants { public static final int DOTS_RADIUS = 50; public static final int DOTS_COLOR = Color.GREEN; public static final int NUM_DOTS_ROWS = 5; public static final int NUM_DOTS_COLS = 5; public static final int WIDTH_BETWEEN_DOTS = 100; public static final int HEIGHT_BETWEEN_DOTS = 100; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload