Android组件学习笔记(自定义设计View,以及布局直接引入的快捷方式)
来源:互联网 发布:java产生0到99的随机数 编辑:程序博客网 时间:2024/05/18 15:50
跟着一本书的教程做的一个简单的跟着手指移动的小球demo,记录一下笔记
自定义View之后引入使用
自定义View的代码(简单来说就是新建一个继承View的类重写一些函数,写出你想要的东西):
package com.example.hp.planemove;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;/** * Created by HP on 2017/11/9. */public class DrawView extends View { public float currentX=40; public float currentY=50; Paint p=new Paint(); public DrawView(Context context) { super(context); } public DrawView(Context context, AttributeSet set) { super(context,set); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); p.setColor(Color.RED); canvas.drawCircle(currentX,currentY,55,p); } @Override public boolean onTouchEvent(MotionEvent event) { currentX=event.getX(); currentY=event.getY(); invalidate(); return true; }}布局代码:
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.hp.planemove.MainActivity"> <LinearLayout android:id="@+id/root" android:layout_width="368dp" android:layout_height="495dp" android:orientation="vertical" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="8dp"></LinearLayout></android.support.constraint.ConstraintLayout>mainactivity代码:
package com.example.hp.planemove;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutCompat;import android.util.DisplayMetrics;import android.view.Display;import android.view.KeyEvent;import android.view.View;import android.view.Window;import android.view.WindowManager;import android.widget.Button;import android.widget.LinearLayout;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LinearLayout root=(LinearLayout)findViewById(R.id.root); final DrawView drawView=new DrawView(this); drawView.setMinimumHeight(500); drawView.setMinimumWidth(300); root.addView(drawView); }}第二种方法直接在布局界面引入自定义组件
布局代码如下:
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.hp.planemove.MainActivity"> <LinearLayout android:id="@+id/root" android:layout_width="368dp" android:layout_height="495dp" android:orientation="vertical" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="8dp"></LinearLayout> <com.example.hp.planemove.DrawView android:layout_width="match_parent" android:layout_height="match_parent" /></android.support.constraint.ConstraintLayout>
mainactivity代码就保持最初新建项目时就好了,不需要再写了。
阅读全文
0 0
- Android组件学习笔记(自定义设计View,以及布局直接引入的快捷方式)
- android学习笔记-自定义View的属性
- android自定义view组件circleprogress阅读笔记
- 【Android学习笔记】自定义View
- Android自定义view学习笔记
- Android学习笔记-自定义view
- 自定义view-自定义布局中引入布局xml
- android 自定义view组件
- Android自定义组件View
- Android 的布局组件学习
- 直接按键设置组件的快捷方式
- 直接按键设置组件的快捷方式
- Android学习笔记10---View布局
- 自定义View学习笔记(4)->凹凸的View
- Android学习 (十一) 创建和引入自定义布局和控件
- Android学习个人笔记1-Layout界面布局-xml,java混合模式-自定义view
- android 开发零起步学习笔记(五):布局组件
- Android学习笔记--Notification的使用-- 自定义布局
- Cmake编译OpenCV3.1源码
- 算数测试(Java实验)
- 如何正确入门Windows系统下驱动开发领域?
- 神经网络有什么理论支持? 本文作者:AI研习社 2017-11-08 18:30 导语:问:神经网络有什么理论支持? 答:目前为止(2017 年)没有什么特别靠谱的。 雷锋网按:本文原作者袁洋
- FTP错误详解及解决方案
- Android组件学习笔记(自定义设计View,以及布局直接引入的快捷方式)
- 运用Ansible作为您的自动化核心
- linux下导入、导出mysql数据库命令
- pycharm 远程调试 上传 helpers 卡住 解决
- File类文件路径详解
- Mysql申明变量、赋值
- 最长上升子序列nlogn算法
- 指令级并行,线程级并行,数据级并行区别
- 后台登录首页ui界面