zoukankan      html  css  js  c++  java
  • 在xml中调用自己用java代码定义的View

    1.在res中new一个class继承view.View,重写ondraw方法,写出自己的view

     1 package com.zzw.myView;
     2 
     3 import android.content.Context;
     4 import android.graphics.Canvas;
     5 import android.graphics.Color;
     6 import android.graphics.Paint;
     7 import android.util.AttributeSet;
     8 import android.view.View;
     9 
    10 public class MyView extends View {
    11     private Paint paint;
    12 
    13     // 如果以后这个自定义的view需要被java代码操作就用这个构造方法
    14     public MyView(Context context) {
    15         super(context);
    16     }
    17 
    18     // 如果以后这个自定义的view仅仅是在xml中静态摆放就用这个构造方法
    19     // 如果两者都需要,可以同时建立这两个构造方法
    20     public MyView(Context context, AttributeSet attrs) {
    21         super(context, attrs);
    22         // 初始化画笔
    23         paint = new Paint();
    24     }
    25 
    26     @Override
    27     protected void onDraw(Canvas canvas) {
    28         super.onDraw(canvas);
    29 
    30         paint.setColor(Color.RED);// 设置画笔颜色
    31         canvas.drawRect(5, 5, 200, 200, paint);// 绘制左上角为(5,5),长宽为200的矩形
    32 
    33         paint.setColor(Color.GREEN);
    34         paint.setTextSize(30);
    35         canvas.drawText("hello,world", 5, 250, paint);
    36     }
    37 
    38 }

    2.在要显示的xml文件中

     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     tools:context="com.zzw.myView.MainActivity" >
     6     <!-- 用包名.类名(自定义的view类) -->
     7     <com.zzw.myView.MyView
     8         android:layout_width="wrap_content"
     9         android:layout_height="match_parent" />
    10 
    11 </RelativeLayout>

    3.调用该xml

     1 package com.zzw.myView;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 
     6 
     7 public class MainActivity extends Activity {
     8 
     9     @Override
    10     protected void onCreate(Bundle savedInstanceState) {
    11         super.onCreate(savedInstanceState);
    12         setContentView(R.layout.activity_main);
    13     }
    14 
    15 }

    结果如图:

  • 相关阅读:
    Git
    Qcon2016上海站PPT
    TeamCity
    在cmd界面,怎么样退出Node.js运行环境
    python 2.x与python3.x的区别
    d3.max()与d3.min()
    d3.svg.line() 曲线构造器
    d3.js 之SVG:矢量化图形绘制
    moment.js 时间格式化库
    directive
  • 原文地址:https://www.cnblogs.com/zzw1994/p/4965837.html
Copyright © 2011-2022 走看看