首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    手把手教你写一个完整的自定义View

    在下面的例子中,我将讲解: 如何实现一个基本的自定义View(继承VIew) 如何自身支持wrap_content & padding属性 如何为自定义View提供自定义属性(如颜色等等) 实例说明:画一个实心圆...// 画笔初始化 private void init() { // 创建画笔 mPaint1 = new Paint (); // 设置画笔颜色为蓝色...手动支持wrap_content属性 先来看wrap_content & match_parent属性的区别 // 视图的宽和高被设定成刚好适应视图内容的最小尺寸 android:layout_width...--在attr标签下设置需要的自定义属性--> 设置图形的颜色:circle_color属性,格式是color,代表颜色--> 属性 // 该属性的id为:R.styleable.CircleView_circle_color // 将解析的属性传入到画圆的画笔颜色变量当中

    1.8K20

    Carson带你学Android:手把手教你写一个完整的自定义View

    类(继承View类) 布局文件添加自定义View组件 注意点设置(支持wrap_content & padding属性自定义属性等等) 下面我将逐个步骤进行说明: 步骤1:创建自定义View类(继承View...// 画笔初始化 private void init() { // 创建画笔 mPaint1 = new Paint (); // 设置画笔颜色为蓝色...手动支持wrap_content属性 先来看wrap_content & match_parent属性的区别 // 视图的宽和高被设定成刚好适应视图内容的最小尺寸 android:layout_width...--在attr标签下设置需要的自定义属性--> 设置图形的颜色:circle_color属性,格式是color,代表颜色--> 属性 // 该属性的id为:R.styleable.CircleView_circle_color // 将解析的属性传入到画圆的画笔颜色变量当中

    1.9K10

    更新您的 widget 以适配 Android 12

    为了能够让您的微件可以动态适配系统颜色,您可以将该主题配置到您的微件上,并且在微件的其它视图上使用主题颜色属性。...android:attr/colorAccent" /> ... layout/widget_checkbox_list_title_region.xml △ 在浅色/深色主题中静态颜色与动态颜色的对比...该过渡效果是由系统自动处理的,并且在旧版本的 Android 上不会出现。要启用该效果,您需要在微件布局根元素上指定一个 id,并设置它的值为 android:id/background。...对于这些视图,您可以为微件预览创建另一个布局,并且在布局中设置固定的值。 要实现上述操作,推荐的最佳实践是使用 标签来复用布局的一部分以启用默认值,而无需复制整个布局。...您可以将新的布局设置为 appwidget-provider 的 previewLayout 属性。 描述 您也可以设置 description 属性作为描述信息显示在微件选择器上。

    94930

    Kotlin入门(24)如何自定义视图

    Android提供了丰富多彩的视图与控件,已经能够满足大部分的业务需求,然而计划赶不上变化,总是有意料之外的情况需要特殊处理。...比如PagerTabStrip无法在布局文件中指定文本大小和文本颜色,只能在代码中通过setTextSize和setTextColor方法来设置。...这用起来殊为不便,如果它能像TextView那样直接在布局指定文本大小和颜色就好了;要想让PagerTabStrip支持该特性,就得通过自定义视图来实现,而自定义视图的第一种途径便是自定义属性。...仍旧以翻页标题栏PagerTabStrip举例,现在给它新增两个自定义属性,分别是文本颜色textColor,以及文本大小textSize。下面给出Java编码的自定义步骤: 1....在res\values目录下创建attrs.xml,文件内容如下所示,其中declare-styleable的name属性值表示新视图的名称,两个attr节点表示新增的两个属性分别是textColor和

    1.4K30

    Android开发笔记(一百三十六)可折叠工具栏布局CollapsingToolbarLayout

    上述属性在代码中的设置方法如下所示: setContentScrim/setContentScrimColor/setContentScrimResource : 设置布局内部未展开时的背景颜色。...setCollapsedTitleGravity : 设置未展开时的标题文字对齐方式。 setExpandedTitleTextAppearance : 设置展开后的标题文字字体。...setExpandedTitleColor : 设置展开后的标题文字颜色。 setExpandedTitleGravity : 设置展开后的标题文字对齐方式。...既然二者原本不是一家,那么就得有新的属性用于区分它们内部的行为,新属性在CollapsingToolbarLayout的子视图节点上声明,说明如下: app:layout_collapseMode :...折叠系数可通过属性app:layout_collapseParallaxMultiplier配置,该属性为1.0时,折叠效果同pin模式即固定不动;该属性为0.0时,折叠效果等同于none模式,即也跟着移动相同距离

    3.3K30

    Android 样式系统 | 主题背景和样式

    主题背景属性为这些标有名字的资源提供了具体的值,在上面的例子中 colorPrimary 属性为这个主题背景设置了具体的值,也就是青绿色 (teal)。...主题背景是一个命名的资源集合,在应用中有更广泛的用途 主题背景类似于接口 (Interface),在接口的编程中它允许您为公共接口提供不同的实现方法。...主题背景的使用效果取决于您的使用方式,您可以通过引用主题背景属性来创建灵活的 Widget。不同的主题背景可以在未来再提供具体的值,比如为 View 层级结构中的某个部分设置背景颜色。 attr/colorSurface"> 复制代码 除了用常量值设置一个颜色 (#ffffff 或者 @color 资源),我们还可以通过 ?...这种级别的解耦方式可以让我们提供不同的程序行为 (比如: 在深色模式与浅色模式下提供不同的背景颜色),而不用创建多个相似但仅有一小部分不一样的布局或者样式,它将主题中的可变元素分离了出来。

    1.2K30

    Android开发 - 样式和主题

    获得所有可用样式的属性的引用(reference),请参阅 R.attr 引用。记住,所有的视图控件对象不接受所有相同的属性,这样你可以平常的引用图为视图控件类指定支持的样式属性。...要发现更多 仅仅作用于theme主题 的属性,查看R.attr 引用中的以windows开始的属性。...在UI上应用样式和主题 有两种方式设置一个样式: 为单个视图控件指定样式,在XML布局文件中的视图元素上添加style属性。...不过,你仍然可以通过主题的方式为你的应用下的所有视图元素应用样式。 要想应用一个主题,你必须在manifest.xml中为activity或者aplication上应用样式。...比如,如果应用上面提到的CodeFont样式在一个Activity上,这是所有的支持文本样式属性的视图元素将应用它们。一些不支持这些属性的视图元素将忽略它们。

    1.8K10

    Android Heroes Reading Notes 5

    Palette颜色主题,可以通过自定义style的方式自定义颜色风格,对应的name值如下面左图所示 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar...getMutedSwatch Palette.Swatch vibrant = palette.getDarkVibrantSwatch(); // 将颜色设置给相应的组件...使用方式:假设Activity从A跳转到B,那么将A中原来的startActivity改为如下代码: //单个共享元素的调用方式 startActivity(intent,ActivityOptions.makeSceneTransitionAnimation...return new RevealAnimator(view, centerX, centerY, startRadius, endRadius); } 下面是一个例子,该例子会呈现出图片从一个点以圆形的方式放大到图片大小的动画效果...在Android 5.X中,可以使用动画来作为视图改变的效果,有两种方式来实现该动画:StateListAnimator和animated-selector。

    92210

    CollapsingToolbarLayout使用

    CollapsingToolbarLayout 可以看到,Toolbar的标题放大并在下方显示,当我们向上滑动列表时,顶部Header部分的图片向上折叠隐藏,标题向上移动并缩小,同时以渐显式的方式显示蓝色主题...注意,没有设置这个属性时,默认使用Toolbar的标题;statusBarScrim顶部视图折叠状态下,状态栏的遮罩色。通常这样设置:app:statusBarScrim="?...attr/colorPrimaryDark",即style样式中定义的沉浸式状态栏颜色。...语句前面)一起使用,使顶部视图展开时图片能够延伸到状态栏位置显示,如效果图中所示;contentScrim内容遮罩,上下滚动时图片上面显示和隐藏的遮罩色,Toolbar位置的的背景色;通常这样设置:app...attr/colorPrimary",即显示为Toolbar颜色,应用的主题色;layout_collapseMode折叠模式,设置其他控件滚动时自身的交互行为,有两种取值:parallax,折叠视差效果

    2.5K60

    D1-从N角星开始论述自定义控件

    star1.png 2.设置控件属性:先介绍一下自定义属性吧 我们常用的TextView、ImageView等都可以在xml里配置相关属性,就是自定义属性 第一步,明确自己的自定义属性有哪些,最后先想好名字...--自定义属性名 和 类型--> attr name="z_star_height" format="dimension"/> attr name="z_star_AngleNum...} 第四步:在xml里使用(为简洁、外层的布局省略): 其中标签头是类全名:com.toly1994.d.view.StarView xmlns:toly="http://schemas.android.com...点击事件.gif 点击事件是你的控件对外的接口,提供修改状态的可能性,你可以发挥无限想象力,这就是自定义控件的魅力。 比如随机颜色,当然你也可以随机大小,随机角数,一切创造取决于你! ?...---- 后记、 1.声明: [1]本文由张风捷特烈原创,转载请注明 [2]欢迎广大编程爱好者共同交流 [3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正 [4]你的喜欢与支持将是我最大的动力

    37920

    D1-从N角星开始论述自定义控件

    else { shape.ss(mStarColor); } painter.draw(shape); } [star1.png] 2.设置控件属性...:先介绍一下自定义属性吧 我们常用的TextView、ImageView等都可以在xml里配置相关属性,就是自定义属性 第一步,明确自己的自定义属性有哪些,最后先想好名字 第二步,在res/values...--自定义属性名 和 类型--> attr name="z_star_height" format="dimension"/> attr name="z_star_AngleNum...} 第四步:在xml里使用(为简洁、外层的布局省略): 其中标签头是类全名:com.toly1994.d.view.StarView xmlns:toly="http://schemas.android.com...--- 后记、 1.声明: 1本文由张风捷特烈原创,转载请注明 2欢迎广大编程爱好者共同交流 3个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正 4你的喜欢与支持将是我最大的动力

    43740

    自定义圆形控件RoundImageView并认识一下attr.xml

    昨天我们学习了自定义带图片和文字的ImageTextButton,非常简单,我承诺给大家要讲一下用自定义属性的方式学习真正的实现自定义控件,在布局文件中使用属性的方式就需要用到attr.xml这个文件,...讲之前解释一下attr.xml的作用,我用土话废话说,这样容易理解:比如我自定义一个控件,怎么实现呢,以RoundImageView为例,首先是继承ImageView,然后实现其构造函数,在构造函数中,...比如颜色和宽度,这个在attr.xml中定义了相关的名字,而在使用RoundImageView的xml布局文件中,我们会为其设置值,这里需要用的值,就是从那里设置的),并设置在本控件中,然后继承onDraw...为例,首先是继承ImageView,然后实现其构造函数,在构造函数中,获取attr中的属性值(再次解释:这里获取的具体的这个属性的值是怎么来的呢?...比如颜色和宽度,这个在attr.xml中定义了相关的名字,而在使用RoundImageView的xml布局文件中,我们会设置其值,这里需要用的值,就是从那里设置的),并设置在本控件中,然后继承onDraw

    1.2K80

    界面无小事(五):自定义TextView

    效果图 前言 写第四篇滚动选择器的时候, 在自定义视图这里含糊了, 有些地方没说清楚, 这次补上关于自定义视图的部分. 自定义属性 自定义视图的一个要点就是添加自定义属性....这里我们填上三个常用的, 文本, 颜色, 字号. 然后在布局文件中就可以使用了. 最后在自定义类中获取属性并赋值. attr name="color" format="color" /> attr name="size" format="dimension" /> </declare-styleable...mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setTextSize(mSize); // 设置背景颜色 mBkColor...颜色解析 Color是个要处理的类, 当你用getColor函数获取到函数, 它是一个int值, 如果我们需要重新在原有颜色基础上变化, 就需要解析这个int, 将它还原成RGB. /** *

    28230

    Android中的各种Drawable类详解

    视图View的背景就是一个Drawable对象,在视图需要进行绘制而调用draw函数时,内部的一部分实现会将调用委托给背景属性mBackground这个Drawable对象的draw函数来完成背景的绘制...R.attr.state_selected R.attr.state_focused R.attr.state_enabled 状态属性并不会对所有Drawable的派生类都有意义。...你需要为位图指定绘制到画布上的位置以及缩放到区域的方式: //这里的android.view.Gravity参考值。...scaleWidth,scaleHeight的值是缩放的比例,注意是指缩放了多少,而不是缩放为多少,缩放的取值大于0, 当setLevel为0时将显示为缩放了多少,而设置为10000时就是原图。...当为某个视图设置了一个StateListDrawable类型的背景时,那么当视图处理某个state时,背景就会根据特定的state不同而显示不同的背景。

    1.6K20

    Android 样式系统 | 常见的主题背景属性

    attr/colorError 显示错误时的颜色。 其他常用的颜色: ?attr/colorControlNormal 正常状态下设置给 icon/controls 的颜色; ?...android:attr/textColorPrimary 设置给文本的主要颜色; ?android:attr/textColorSecondary 设置给文本的次要颜色。 大小 ?...TextAppearance Material 定义了缩放类型,它是在整个应用中使用的一组由文本样式组成的离散集合,集合中的每个值都是一个主题背景属性,可以被设置为 textApperance。...attr/borderlessButtonStyle 设置为 Text 样式的按钮; ?attr/materialButtonOutlinedStyle 设置为 Outlined 样式的按钮。...将 item 的对齐部分抽象成一个主题背景属性,给不同界面使用的同一个布局中使用主题背景来区分它们的差异: 1.在 attrs.xml 中定义主题背景属性: <!

    1.2K30

    这些Android系统样式中的颜色属性你知道吗?

    Android 系统样式中的颜色属性 推荐阅读看完后彻底搞清楚Android中的 Attr 、 Style 、Theme 几个常用的颜色属性 先放上一张经典的图片,图片来自网络。 ?...这张图在网上很是流传,也不知道当初是哪位大神标注的,很好的说明了 Android 系统中的几个常用的颜色属性的作用范围。...在开发者官网 R.attr 中给我们列出了所有的系统属性,我们可以在这里面找到对应的颜色属性所代表的意思。...attr/colorPrimary" /> colorPrimaryDark status bar(状态栏)的背景色,仅适用于 Android 5.0及其以上版本。...这两种样式也有不同的使用方法 Theme.AppCompat 一般用于设置整个应用程序的全局主题 ThemeOverlay.AppCompat 用于覆盖特定视图的主题,覆盖相关的属性使他们成为亮或者暗

    1.9K10

    再不迁移到Material Design Components 就out啦

    本指南将向您展示如何迁移代码库,以便您可以使用新的属性,样式和小部件。 精简的主题示例 本指南使用了精简的应用程序来演示迁移过程。...下面这几种情况应该考虑 在布局中写的控件如果有对应的 MDC 控件的话,直接使用 MDC 控件 任何的风格,默认风格和默认风格属性应该改变成 MDC 版本 在编程中或者自定义类的父级类使用的任何控件都应该为...MDC窗口小部件使用这些属性来为其背景,文本,图标等着色。要了解哪些小部件使用哪种颜色,需要检查源代码中的默认小部件样式。 AppCompat和框架中还存在一些颜色,但不再适用于此新系统。...*样式和相应的textAppearance*主题属性,它们替代了现有的AppCompat /框架样式。 ? MDC小部件使用这些属性来设置文本样式。...MDC小部件使用这些属性来设置其背景样式。要了解哪些窗口小部件适用于哪些形状类别,需要检查源代码中的默认窗口小部件样式。 控件背景 实现此功能的类为 MaterialShapeDrawable.

    3.2K30

    一文学会所有 Android TextView 属性,妈妈再也不担心我的代码写不好了!

    省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间; ”marquee” ——以跑马灯的方式显示(动画横向移动) android:freezesText设置保存文本的内容以及光标的位置...android:gravity设置文本位置,如设置成“center”,文本将居中显示。 android:hintText为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。...13.TextView 的其他属性 android:imeOptions:附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。...android:password以小点”.”显示文本 android:phoneNumber设置为电话号码的输入方式。...android:shadowDy设置阴影纵向坐标开始位置。 android:shadowRadius设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。

    1.8K20
    领券