首页 > 代码库 > 通过自定义view替代layout.xml表示activity的界面

通过自定义view替代layout.xml表示activity的界面

创建了一个新项目之后,

在src内新建一个类public class 类名 extends View

 1 package com.example.activity_view; 2  3 import android.content.Context; 4 import android.graphics.Canvas; 5 import android.graphics.Color; 6 import android.graphics.Paint; 7 import android.view.View; 8  9 public class contentview extends View{10 11     public contentview(Context context) {12         super(context);13         // TODO Auto-generated constructor stub14     }15     @Override16     protected void onDraw(Canvas canvas)17     {18         Paint paint=new Paint();19         paint.setTextSize(18);20         paint.setAntiAlias(true);                  //设置抗锯齿21         paint.setColor(Color.RED);                 //设置字体颜色22         canvas.drawText("这是通过继承和扩展view类来显示的。", 0, 50, paint);   //绘制字体23     }24 25 }

onDraw(Canvas canvas)是用于绘制界面的。通常用Paint来绘制。

之后,在MainActivity.class中把setcontentview(R.layout.xxx)替换为(contentview);如下

package com.example.activity_view;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {    @Override    public void  onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        contentview cv=new contentview(this);        setContentView(cv);    }}

这样,就成功了