【安卓开发 】Android初级开发(五)自定义View
1.自定义View的构造函数调用的场景
package com.sina.myapplication;import android.content.Context;
import android.util.AttributeSet;
import android.view.View;import androidx.annotation.Nullable;public class Textview extends View {//在new Textview类的时候调用public Textview(Context context) {super(context);}//在layout布局中使用public Textview(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}//在layout布局中使用, 并且携带Stylepublic Textview(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);//布局的宽高都是由此指定//指定控制的狂傲,需要测量//可以获取XML中设置的宽高的模式int widthMode = MeasureSpec.getMode(widthMeasureSpec);int heightMode = MeasureSpec.getMode(heightMeasureSpec);//在布局中指定了wrap_contentif (widthMode == MeasureSpec.AT_MOST);//在布局中获取一个确切的值,match_parent,fill_parentif(widthMode == MeasureSpec.EXACTLY);//在布局中尽可能大,ListView,ScrollView中会使用if(widthMode == MeasureSpec.UNSPECIFIED);}
}
2.ListView,ScrollView显示不全的解决方法。方案为重写onMeasure该方法。
package com.sina.myapplication;import android.content.Context;
import android.util.AttributeSet;
import android.view.View;import androidx.annotation.Nullable;public class MyListView extends View {public MyListView(Context context) {super(context);}public MyListView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}public MyListView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {heightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);/*widthMeasureSpec,heightMeasureSpec:总计32位,会包含两个信息,1.值,30位,MAX_VALUE>>2。 2.模式,MeasureSpec.AT_MOST 2位。*/super.onMeasure(widthMeasureSpec, heightMeasureSpec);}
}
【安卓开发 】Android初级开发(五)自定义View相关推荐
- Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...
- Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习...
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...
- 安卓(Android)开发百度语音唤醒(识别)
安卓(Android)开发百度语音唤醒(识别) 目录 安卓(Android)开发百度语音唤醒(识别) 一:准备 1:获取自定义唤醒词 2:SDK下载 3:将bdasr_V3_xxx_xxx.jar引入 ...
- Android初级开发笔记-- activity启动模式的学习(1)
第一次学习Android中一个很重要的概念,启动模式.文章记录的也只是一些入门知识,随着学习的深入还会有activity启动模式的学习(2)和(3). 下面分三个小点说一下对启动模式的理解区别以及如何 ...
- 安卓(android)开发应该怎么学?需要哪些基础知识?
随着智能手机的流行,现在很多大大小小的开发商都需要在手机上具备客户端,这里是一片强大的吸金磁场,那么很多想学习android的朋友,都会有个疑问,那就是:安卓(android)应该怎么学,需要哪些基础 ...
- Android动画特效之自定义View
Android动画特效之Animator属性动画实现_Angel-杭州的博客-CSDN博客 我在百忙之中抽出宝贵时间来实现Android动画特效,也就是Android Animator动画效果 ...
- 移动端app开发-03-IOS 初级开发入门教程
移动端app开发-03-IOS 初级开发入门教程 什么是iOS iOS是苹果公司为它的移动设备(iPhone.iPad.iWatch等)开发的移动操作系统. iOS发展史 2007年苹果发布iPh ...
- Android实现雪花特效自定义view
一.前言 这个冬天,老家一直没有下雨, 正好圣诞节,就想着制作一个下雪的特效. 圣诞祝福:平安夜,舞翩阡.雪花飘,飞满天.心与心,永相伴. 圣诞节是传统的宗教节日,对于基 督徒,那是庆祝耶稣的诞生,纪 ...
- Android 气泡动画(自定义View类)
Android 气泡动画(自定义View类) 一.前言 二.代码 1. 随机移动的气泡 2.热水气泡 一.前言 最近有需求制作一个水壶的气泡动画,首先在网上查找了一番,找到了一个文章. https:/ ...
最新文章
- usaco Healthy Holsteins
- A标签中通过href和onclick传递的this对象实现思路
- 【APP接口开发】chrome浏览器DHC工具安装使用(亲测有效)
- java 异常继承体系_1、异常概述和继承体系 2、原因及处理方式 3、运行时异常 4、重写异常处理 5、Throwable类常见方法 6、自定义异常...
- 当音乐博士开始写代码...
- 产品经理技能树之 需求规范
- viewpager初始化fragment没有绘制_NDK OpenGL ES渲染系列 之 绘制三角形
- Mybatis-generator的使用
- 专访凯美瑞德研发总监孟江华:银行间市场操作系统的自主可控亟待加强
- 从web层运作流程认识Struts2
- tomcat8.0安装及配置
- 本地化ASP.NET core模型绑定错误消息
- 360主机卫士linux安装软件,360主机卫士linux版|360主机卫士 for Linux v0.5.7官方版 - 121下载站...
- 51单片机------闪烁灯(实验报告)
- 基于Labview的水位水温控制系统——虚拟仪器实验设计报告
- 第五章面向对象编程设计与开发
- 加密狗android,Android系统加密狗的设计与实现
- 文化苦旅(新版) 读后感
- c语言用递归的方法插入排序,c语言,递归法的选择排序。为什么运行出错。。。求赐教...
- 用Kbuilder制作卡拉OK教程