• 在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 }

    结果如图:

  • 相关阅读:
    编译并使用Lua语言
    C#中使用DLL文件
    将Unity3D游戏移植到Android平台上
    Unity3D知识点
    清下书柜,工作书,旧书,正版书,个人学习过的书asp,net,delphi,java,flex,actionscript,vb...
    使用ABP打造SAAS系统(2)——前端框架选择
    使用ABP打造SAAS系统(1)——环境准备
    延迟实例单例模式注意点
    jvm指令解释i = i++ + i++ + i++ + ++i;等于多少
    MYSQL增加库表权限
  • 原文地址:https://www.cnblogs.com/zzw1994/p/4965837.html
Copyright © 2020-2023  润新知