Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在屏幕中间开发Android开发 我是Android DeV的一个新学生,我想在屏幕中间画一个ReCt,下面是我的源代码,但是它不会在画布上画任何东西,你能帮助解释一下这是怎么回事吗?谢谢 public class CustomView extends Activity { private static final String TAG="CustomeView"; MyDrawView myDrawView; //RulerView myRulerView; Canvas canvas=new Canvas(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i(TAG, "Get Window manager"); WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); DisplayMetrics metrics = new DisplayMetrics(); display.getMetrics(metrics); //MyDrawView myDrawView=new MyDrawView(this); myDrawView=(MyDrawView)findViewById(R.id.myDrawView); myDrawView.screenX=metrics.widthPixels; myDrawView.screenY=metrics.heightPixels; Log.i(TAG, "myDrawView.screenX="+ myDrawView.screenX); Log.i(TAG, "myDrawView.screenY="+ myDrawView.screenY); //Draw Rect in the middle of screen Log.i(TAG, "DrawRect"); myDrawView.drawRect(canvas); } } public class MyDrawView extends View { public float screenX; public float screenY; Rect r = new Rect((int)(screenX/2-50),(int)(screenY/2-50),(int)(screenX/2+50),(int)(screenY/2+50)); Paint paint = new Paint(); { paint.setAntiAlias(true); paint.setColor(Color.RED); paint.setStyle(Style.STROKE); paint.setStrokeWidth(2.5f); paint.setAlpha(100); }; public MyDrawView(Context context) { super(context); // TODO Auto-generated constructor stub } public MyDrawView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public MyDrawView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); // TODO Auto-generated constructor stub } public void drawRect(Canvas canvas){ // Draw Rect canvas.drawRect(r, paint); } }_Android_Canvas_View_Window Managers - Fatal编程技术网

如何在屏幕中间开发Android开发 我是Android DeV的一个新学生,我想在屏幕中间画一个ReCt,下面是我的源代码,但是它不会在画布上画任何东西,你能帮助解释一下这是怎么回事吗?谢谢 public class CustomView extends Activity { private static final String TAG="CustomeView"; MyDrawView myDrawView; //RulerView myRulerView; Canvas canvas=new Canvas(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i(TAG, "Get Window manager"); WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); DisplayMetrics metrics = new DisplayMetrics(); display.getMetrics(metrics); //MyDrawView myDrawView=new MyDrawView(this); myDrawView=(MyDrawView)findViewById(R.id.myDrawView); myDrawView.screenX=metrics.widthPixels; myDrawView.screenY=metrics.heightPixels; Log.i(TAG, "myDrawView.screenX="+ myDrawView.screenX); Log.i(TAG, "myDrawView.screenY="+ myDrawView.screenY); //Draw Rect in the middle of screen Log.i(TAG, "DrawRect"); myDrawView.drawRect(canvas); } } public class MyDrawView extends View { public float screenX; public float screenY; Rect r = new Rect((int)(screenX/2-50),(int)(screenY/2-50),(int)(screenX/2+50),(int)(screenY/2+50)); Paint paint = new Paint(); { paint.setAntiAlias(true); paint.setColor(Color.RED); paint.setStyle(Style.STROKE); paint.setStrokeWidth(2.5f); paint.setAlpha(100); }; public MyDrawView(Context context) { super(context); // TODO Auto-generated constructor stub } public MyDrawView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public MyDrawView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); // TODO Auto-generated constructor stub } public void drawRect(Canvas canvas){ // Draw Rect canvas.drawRect(r, paint); } }

如何在屏幕中间开发Android开发 我是Android DeV的一个新学生,我想在屏幕中间画一个ReCt,下面是我的源代码,但是它不会在画布上画任何东西,你能帮助解释一下这是怎么回事吗?谢谢 public class CustomView extends Activity { private static final String TAG="CustomeView"; MyDrawView myDrawView; //RulerView myRulerView; Canvas canvas=new Canvas(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i(TAG, "Get Window manager"); WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); DisplayMetrics metrics = new DisplayMetrics(); display.getMetrics(metrics); //MyDrawView myDrawView=new MyDrawView(this); myDrawView=(MyDrawView)findViewById(R.id.myDrawView); myDrawView.screenX=metrics.widthPixels; myDrawView.screenY=metrics.heightPixels; Log.i(TAG, "myDrawView.screenX="+ myDrawView.screenX); Log.i(TAG, "myDrawView.screenY="+ myDrawView.screenY); //Draw Rect in the middle of screen Log.i(TAG, "DrawRect"); myDrawView.drawRect(canvas); } } public class MyDrawView extends View { public float screenX; public float screenY; Rect r = new Rect((int)(screenX/2-50),(int)(screenY/2-50),(int)(screenX/2+50),(int)(screenY/2+50)); Paint paint = new Paint(); { paint.setAntiAlias(true); paint.setColor(Color.RED); paint.setStyle(Style.STROKE); paint.setStrokeWidth(2.5f); paint.setAlpha(100); }; public MyDrawView(Context context) { super(context); // TODO Auto-generated constructor stub } public MyDrawView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public MyDrawView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); // TODO Auto-generated constructor stub } public void drawRect(Canvas canvas){ // Draw Rect canvas.drawRect(r, paint); } },android,canvas,view,window-managers,Android,Canvas,View,Window Managers,您不能仅通过创建画布来绘制活动。这必须从视图的onDraw方法完成 因此,与其从活动中创建画布,不如从MyDrawView类中的onDraw方法中获取画布 在类内部,您可以使用getMeasuredHeight和getMeasuredWidth获取当前视图的大小并相应地绘制 不确定矩形的用途,但是,如果只是为了装饰的目的,它可能会更快地创建一个可绘制的XML文件并放到布局中间的IVIEVIEW中。

您不能仅通过创建画布来绘制活动。这必须从视图的onDraw方法完成

因此,与其从活动中创建画布,不如从MyDrawView类中的onDraw方法中获取画布

在类内部,您可以使用getMeasuredHeight和getMeasuredWidth获取当前视图的大小并相应地绘制

不确定矩形的用途,但是,如果只是为了装饰的目的,它可能会更快地创建一个可绘制的XML文件并放到布局中间的IVIEVIEW中。