自定义View中调用控件的两种方式

android自定义view几种方式 自定义View的实现方式有以下几种:组合控件,继承控件,自绘控件 详细可分为:自定义组合控件,继承系统View控件,继承系统ViewGroup,自绘View控件,自会ViewGroup控件 1. 自定义组合控件 组合控件就是将多个控件组合成一个新的控件,可以重复使用。 1.编写布局文件 2.实现构造方法 3.初始化UI 4.提供对外的方法 5.在布局当中引用该控件 6.activity中使用 示例:中间是title的文字,左边是返回按钮,右边是一个添加按钮 //因为我们的布局采用Re. 阅读详情

第一种是需要写一个XML,然后在自定义代码中获取控件

1

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="200dp">


    <android.support.v4.view.ViewPager
        android:id="@+id/banner_viewPager"
        android:layout_width="match_parent"
        android:layout_height="200dp"/>


    <LinearLayout
        android:layout_alignParentEnd="true"
        android:visibility="visible"
        android:layout_marginEnd="10dp"
        android:layout_marginBottom="10dp"
        android:orientation="horizontal"
        android:layout_alignBottom="@id/banner_viewPager"
        android:id="@+id/banner_points"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></LinearLayout>

</RelativeLayout>

在上面的布局代码中显示了要获取viewPager和LinearLayout


2 接下来在自定义View的构造方法中获取layout,并绑定控件

下面的例子是用buttterKnife,使用findViewById也是可以的

 @BindView(R.id.layout_banner_viewpager)

  ViewPager viewPager;
  @BindView(R.id.layout_banner_points_group)
  LinearLayout points;

  public BannerView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    LayoutInflater.from(getContext()).inflate(R.layout.layout_custom_banner, this, true);
    ButterKnife.bind(this);
    imageViewList = new ArrayList<>();
  }


第二种方法 :在自定义View中直接写需要的控件实例

以下是用korlin编写的


viewPager=ViewPager(context)
val params=RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT)
viewPager.layoutParams=params

tv = TextView(context)
val dotParams=LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT)
with(dotParams){
    addRule(RelativeLayout.ALIGN_PARENT_BOTTOM)
    setMargins(0,0,0,ScreenUtil.dip2px(10))
}
tv.layoutParams=dotParams
tv.gravity=Gravity.CENTER_HORIZONTAL
//自己写的


this.addView(viewPager)
this.addView(tv)

比较两种方法,

第一种更直观,能直接看到获取控件的位置和大小,缺点是需要写一个布局文件,之后还要在构造方法中获取控件id,

第二种少写了一个布局,还需要对控件位置和大小有把握才好写,但是优点是可以少写一个XML,需要改动的时候就不用在特意去XML中改了


FPGA人脸识别检测(先获取人脸图像以及灰度二值化) 由于图片有空洞等缺陷,所以后面要进行中值滤波、腐蚀、膨胀等算法处理,然后再对人脸进行框选,最后显示出来。最终的成像应该是下面这样的。(后面有时间再接着做哈哈哈)5、通过modelsim将操作后的图片数据写入gray_img.txt里面后,用matlab将txt转成图片。1、先用matlab将图片转换成txt数据,代码如下。读取图片的方式按照博客咸鱼里的方式来做,如下。2、FPGA读取txt数据。4、FPGA顶层模块及仿真。3、FPGA灰度二值化。 阅读详情

相关推荐

特斯拉Model 3 BMS主控板拆解:从硬件设计到热管理策略的实战解析

本文深度拆解特斯拉Model 3的BMS主控板,解析其硬件架构与热管理协同策略。文章聚焦于主控板的分区布局、双核MCU的智慧分工,以及从被动监控到主动干预的热管理范式转变,揭示了特斯拉在高压安全、实时控制与系统级工程思维上的设计哲学。

zz67890的博客 594

android 自定义viewgroup 设置子控件_Android 自定义 View 最少必要知识

1. 什么是自定义 View?1.1 定义在 Android 系统中,界面中所有能看到的元素都是 View。默认情况下,Android 系统为开发者提供了很多 View,比如用于展示文本信息的 TextView,用于展示图片的 ImageView 等等。但有时,这并不能满足开发者的需求,例如,开发者想要用一个饼状图来展示一组数据,这时如果用系统提供的 View 就不能实现了,只能通过自定义 Vie...

weixin_39550937的博客 455

AI人工智能与TensorFlow的教育科技应用

随着科技的飞速发展,AI人工智能在各个领域都展现出了巨大的潜力,教育领域也不例外。本文章的目的在于深入探讨AI人工智能与TensorFlow在教育科技中的具体应用,包括智能教学系统的开发、学生学习情况的评估与预测等方面。范围涵盖了从基础概念到实际项目应用的各个层面,旨在为教育科技工作者和相关研究者提供全面且深入的技术指导。本文将首先介绍AI人工智能和TensorFlow的核心概念及其联系,让读者对相关技术有基本的了解。接着详细讲解核心算法原理和具体操作步骤,并结合数学模型和公式进行深入分析。

AI智能探索者的博客 1697

android自定义view获取控件,android中如何使用自定义view,自定义控件属性,及动态自定义控件...

如何自定义View好处:特殊的效果,满足个性的需求流程:1) 创建一个类,继承View或它的子类2) 添加构造方法一个参数:在代码中创建对象两个参数:在布局文件中使用3) 重写onDraw()方法 一个矩形区域,画布Canvas 画笔Paint设置画笔属性// 创建画笔Paint paint = new Paint();paint.setColor(Color.RED);pa...

weixin_29408705的博客 287

Claude Code 实战指南:从入门到高效编程

本文是一份Claude Code实战指南,旨在帮助开发者从入门到精通这款AI编程助手。文章详细讲解了如何通过清晰的指令公式与Claude Code高效沟通,并展示了如何将其深度集成到日常开发工作流中,例如理解陌生代码、调试和生成测试文档。指南还提供了避坑建议与最佳实践,并通过构建一个天气查询CLI工具的完整案例,演示了如何利用Claude Code加速开发进程,实现从设计到代码的高效人机协作。

weixin_28339967的博客 485

谷粒商城篇章9 ---- P248-P261/P292-P294 ---- 消息队列【分布式高级篇六】

RabbitMQ消息队列、RabbitMQ延时队列。

weixin_48568302的博客 1550

android自定义view获取控件,Android 自定义View onMeasure方法的实现

发觉自己在进行Android开发的时候发觉自己开发的APP的UI几乎是由第三方View库(比如 android-pulltorefresh,ActionBar-PullToRefresh)等等堆砌出来的,发觉自己居然没有自定义过一个控件。心好痛:)本文是一篇对于Android自定义View时继承View 并实现 onMeasure() 方法的理解。为什么要写这篇文章为了避免以后自定义View的时候...

weixin_29585753的博客 348

Android功耗系列专题分析之四:待机概率性功耗高的失效分析

本文分析了Android设备待机功耗异常高的问题。通过日志发现系统休眠失败,原因是PowerManagerService.Display唤醒锁未被释放。进一步排查发现,指纹解锁功能在灭屏时未正确释放屏幕锁定,导致DisplayReady状态异常。解决方案是将指纹功能的背光控制与DisplayReady状态控制分离,使用两个变量独立管理。经验表明,快速定位问题比解决问题更重要,修改原生流程时需谨慎评估风险。

451

自定义View之组合自定义控件

今晚是几分焦虑的学习呀,想着第一次面试在周六,想多学点知识,但是发现好像其实自己的基础都学完了,在找多点进阶的学,离题了,恩,好的,入正题,如何在安卓中使用自定义View控件,并且实现动态的实现,接口回调机制等。 这篇文章仅仅是组合控件,不涉及自定义View的绘制。开始!!! 1、首先在values下新建一个attrs的xml文件,指定自定义控件的各种属性 代码如下:<?xml version

爱吃青菜的鱼 595

【LAMMPS学习】五、LAMMPS命令(8) Pair_style 势

所有LAMMPS pair_style命令如下表所示。有些样式有加速版本。这由括号中的附加字母表示:g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t = OPT。

荷塘阅色 3016

手把手教你学Simulink--基于飞轮储能系统的场景实例:飞轮储能与锂电池混合储能系统的协同控制

本文详细介绍了基于Simulink的飞轮储能与锂电池混合储能系统协同控制建模方法。通过高通/低通滤波器实现功率分配,使飞轮处理高频波动(±100kW),锂电池承担削峰填谷(50kW)。仿真结果表明,该系统效率达88%,锂电池循环次数减少90%,投资成本比纯电池方案节省200万美元。文章包含完整的建模步骤、控制策略设计和多场景仿真分析,为构建高效、长寿、经济的智能储能系统提供了实用解决方案。

MHD0815的博客 342

自定义view的使用(一)

自定义View记录第一次写博客 记录第一次写博客 希望可以一直坚持,哈哈哈哈!小黑菜的变白之路。 public class MyView extends View: 定义MyView类继承View; 2.在xml文件里引入完整包名, 代码 <com.example.myapplication1.MyView android:id="@+id/smileview" ...

qq_44331582的博客 380

YOLOv11全方位改进指南:卷积层、轻量化、注意力、损失函数等创新优化一览

YOLOv11通过八大核心模块的创新设计,在保持YOLO系列实时性的同时显著提升检测精度。本文提出的可变形卷积DCNv4多模态注意力动态解耦头等创新方案,已在工业质检、自动驾驶、无人机巡检等领域成功应用。完整项目地址预训练模型:包含从nano到x六个规格在线演示创新声明首次在YOLO系列集成DCNv4,小目标检测AP提升8.2%提出多模态混合注意力(MMAttention),兼顾通道与空间关系动态标签分配策略使训练效率提升40%

QQ_778132974的博客 1019

Flutter 自定义绘制 View

在 Flutter 中自定义 View 有两种方式: 组合已有控件 自定义绘制 如何自定义绘制 有两个类做这件事情: CustomPaint :会在绘制阶段提供一个 Canvas 画布 CustomPainter : 具体的画笔, 可配置画笔的颜色,路径等 CustomPaint( painter: Sky(), child: Center( child: Text( ...

weixin_34367845的博客 157

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Android自定义View的四种方式

一 前言 在Android开发中有很多业务场景,原生的控件是无法满足应用,并且经常也会遇到一个UI在多处重复使用情况,那么就需要通过自定义View的方式来实现这些UI效果。作为一个Android开发工程师自定义View属于一个必备技能。 像前几天正好做了一个上传本地图片的网格UI,点击相机的icon就可以上传选择本地图片,选中图片之后就可以显示的界面上。本来可以使用Android原生GridView,但是这个控件由于嵌套到ScrollView中,所以导致滑动事件冲突,当然网上...

nihaomabmt的专栏 9970

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android自定义View的三种方式:继承布局,继承原生控件,继承View

自定义View是Android开发的基本技能,本文记录了自定义View的三种方式

Alpinist Wang 1万+

自定义View的三种实现方式及自定义属性使用介绍

这里写目录标题一 前言二 三种自定义控件的方法2.1 组合控件2.2 继承控件2.2.1 继承View类系统控件2.2.2 继承ViewGroup类系统控件2.3 自绘控件2.3.1 自绘叶子View控件2.3.2 自绘ViewGroup控件三 在自定义View中使用自定义属性四 自定义属性格式汇总 一 前言 尽管Android系统提供了不少控件,但是有很多酷炫效果仍然是系统原生控件无法实现的。好在Android允许自定义控件,来弥补原生控件的不足。但是在很多初学者看来,自定义View似乎很难掌握。其中

qq_39431405的博客 4078

Android自定义View的三种实现方式及自定义属性

自定义View的实现方式有以下几种:组合控件,继承控件,自绘控件 详细可分为:自定义组合控件,继承系统View控件,继承系统ViewGroup,自绘View控件,自会ViewGroup控件 1. 自定义组合控件 组合控件就是将多个控件组合成一个新的控件,可以重复使用。 1.编写布局文件 2.实现构造方法 3.初始化UI 4.提供对外的方法 5. 在布局当中引用该控件 6.activity中使用 2.继承系统控件 通过继承系统控件(View子类控件或ViewGroup子类控件...

wuto_的博客 1132

android自定义view获取控件,Android自定义View全解

目录目录.png1. 自定义View基础1.1 分类自定义View的实现方式有以下几种类型定义自定义组合控件多个控件组合成为一个新的控件,方便多处复用继承系统View控件继承自TextView等系统控件,在系统控件的基础功能上进行扩展继承View不复用系统控件逻辑,继承View进行功能定义继承系统ViewGroup继承自LinearLayout等系统控件,在系统控件的基础功能上进行扩展继承View...

weixin_36335903的博客 1040

安卓自定义View的4种方式

③ 组合控件(复合控件) FrameLayout/LinearLayout 等 部分 部分 ✔(inflate) 自定义输入框、Card、搜索框。绘制(View) + 布局(ViewGroup) + 组合复用(inflate) + 控件行为扩展。├── dispatchDraw() ← 绘制子 View(ViewGroup)确定子 View 的位置(left、top、right、bottom)① 自定义绘制 View View ✔ ❌ ❌ 图形、动画、仪表盘等。

sinat_33250050的博客 1066

Android自定义View详解

一、自定义View基础 1、分类 自定义View的实现方式有以下几种: 自定义组合控件: 多个控件组合成为一个新的控件,方便多处复用 继承系统View控件: 继承自TextView等系统控件,在系统控件的基础功能上进行扩展 继承View: 不复用系统控件逻辑,继承View进行功能定义 继承系统ViewGroup: 继承自LinearLayout等系统控件,在系统控件的基础功能上进行扩展 继承V...

恬静释然的博客 1013

移除子控件两种方式的区别

在正常情况下,移除一个view控件,通常都是先使用findViewById(int) 来获取该控件的实例,再调用它的setVisibility(int)的方法来隐藏或者移除该控件。但是如果ViewGroup中的子控件是动态的(或者说是没有指定id),那么要移除控件,就需要对父容器进行操作,移除的话有两种方式: 调用getChildAt(int)方法获取子控件对象,之后调用其setVisibility

戴维尼老爷爷 7306

android 自定义viewgroup 设置子控件_写自定义view该有的的流程和思路

因为工作原因,想写一篇自定义view的初级心得。 一、一般而言写自定义view有大体6个步骤(以下顺序不分先后):继承View的某个子类,包括ViewGroup的子类(毕竟ViewGroup也是View的子类嘛╮(╯_╰)╭) 2. 重写继承的父类View的一些特定函数及常用的三个:(测量measure),(放置layout),(绘制draw)3.为自定义View类增加属性(主要是在那三个重写的...

weixin_39752800的博客 817

自定义控件的概念和view类的重要性

自定义控件的概念:Android中组件必须是View的直接子类或间接的子类,其中view有一个viewGroup的子类,用于定义容器,(FramenLayout,LinearLayout,都是ViewGroup的子类). 如果组件中还子组件,就是从ViewGroup类继承,否则从view类继承,view类就相当于控件的上帝一样,只要你自定义控件,要么是view的直接子类,要么就是view的间接子

Android小哥 1117

android自定义view

组合控件就是将多个控件组合成一个新的控件,可以重复使用应用场景:在项目中经常会遇到一些比较复杂的UI块需要用在多处使用,那么我们就可以通过五大布局 和基本控件组合成一个新的布局View,这样就可以方便的将该UI用在项目的不同页面中,比如一个标题栏。这种方式比较简单,只要通过布局文件实现相应的UI,然后将该UI加到适合的五大布局中即可。2.自动定义组合控件的使用步骤1.首先先创建一个.xml文件,编写布局/>......

xubo667的博客 1018
上一篇: kotlin版的酷欧天气 (郭林大神的第一行代码第二版)
下一篇: Retrofit+Rxjava
breakfrox
博客等级 码龄10年 1粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值