我是一名热爱 Android 技术的程序员,平时爱造轮子,人送外号轮子哥 。
我的理想是让这个世界没有难开发的安卓项目,消灭一切难维护的代码。
Shape 支持在布局中直接定义啦,支持设置阴影,文字渐变色,状态选择器
License: Apache License 2.0
ui出的图只有底部边框大小改变了
在 targetSdk 32 版本中,kotlin,设置圆角属性无效
没有生效
是
是部分机型还是所有机型都会出现【必答】:部分/全部(例如:某为,某 Android 版本会出现)
框架最新的版本是否存在这个问题【必答】:是/否(如果用的是旧版本的话,建议升级看问题是否还存在)
是否已经查阅框架文档还未能解决的【必答】:是/否(文档会提供最常见的问题解答,可以看看是否有自己想要的)
issue 是否有人曾提过类似的问题【必答】:是/否(看看曾经有人提过类似的问题,先参考一下别人是怎么解决的)
是否可以通过 Demo 来复现该问题【必答】:是/否(排查一下是不是自己的项目代码写得有问题导致的)
使用原生的 shape.xml 来实现是否也会出现该问题【必答】:是/否(排查一下是不是框架的代码存在问题导致的)
提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)
提供截图或视频(根据需要提供,此项不强制)
提供解决方案(如果已经解决了的话,此项不强制)
设计师给的UI有的EditText的背景是矩形的,有的是两边是圆形的,看着您实现的TextView挺像,但无法直接用。 最好可以有个类产出是Drawable。 这样EditText设置下background就可以实现不同的形状了。
只是建议哈,如有实现难度,请忽略。
框架版本:6.2
问题描述:ShapeFrameLayout使用shape_solidDisabledColor的时候好像没效果,enable已设为false
复现步骤:ShapeFrameLayout使用shape_solidDisabledColor,enable设为false
是否必现:是
手机信息:xiaomi8 se / Android 10
是部分机型还是所有机型都会出现:全部
框架最新的版本是否存在这个问题:是
是否已经查阅框架文档还未能解决的:是
issue 是否有人曾提过类似的问题:否
是否可以通过 Demo 来复现该问题:是
使用原生的 shape.xml 来实现是否也会出现该问题:否
提供报错堆栈(如果有报错的话必填)
提供截图或视频(根据需要提供,此项不强制)
提供解决方案(如果已经解决了的话,此项不强制)
可以支持下颜色渐变且背景有shadow
我的工程只要添加ShapeView库,编译出现以下出错,不得解:
xxx\src\main\res\values\strings.xml:1238:5-115: AAPT: warn: multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?.
去除ShapeView即编译正常。
issue 是否有人曾提过类似的问题?(必答项,一旦出现重复提问我将不会再次解答)
你觉得框架有什么不足之处?(必答项,你可以描述框架有什么令你不满意的地方)
你觉得该怎么去完善会比较好?(非必答项,你可以提供一下自己的想法或者做法供作者参考)
框架版本【必填】:8.5
问题描述【必填】:设置为垂直渐变,但显示出来始终是水平方向的渐变
<com.hjq.shape.layout.ShapeRelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_250"
app:shape_textGradientOrientation="vertical"
app:shape_endColor="@color/white"
app:shape_startColor="@color/fill_2_color"
/>
是部分机型还是所有机型都会出现【必答】:只测试了华为Mata 40
框架最新的版本是否存在这个问题【必答】:最新
是否已经查阅框架文档还未能解决的【必答】:是
issue 是否有人曾提过类似的问题【必答】:是/否(看看曾经有人提过类似的问题,先参考一下别人是怎么解决的)
是否可以通过 Demo 来复现该问题【必答】:是/否(排查一下是不是自己的项目代码写得有问题导致的)
使用原生的 shape.xml 来实现是否也会出现该问题【必答】:是/否(排查一下是不是框架的代码存在问题导致的)
提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)
提供截图或视频(根据需要提供,此项不强制)
提供解决方案(如果已经解决了的话,此项不强制)
这个设定要怎么布局好呢?
范围跟随圆角设置
框架版本:6.2
问题描述:ShapeFrameLayout使用shape_solidDisabledColor的时候好像没效果,enable已设为false
复现步骤:在ShapeFrameLayout使用shape_solidDisabledColor
是否必现:是
手机信息:小米 8se / Android 10
提供报错堆栈(如果有报错的话必填)
提供截图或视频(根据需要提供,此项不强制)
提供解决方案(如果已经解决了的话,此项不强制)
框架版本【必填】:8.3
问题描述【必填】:设置布局为宽度wrap_content 动态给布局设置外边框 会导致布局宽度直接撑满
复现步骤【必填】:设置布局为宽度wrap_content 动态给布局设置外边框 会导致布局宽度直接撑满(注意:目前不受理没有复现步骤的 Bug 单)
是否必现【必填】:是
出现问题的手机信息【必填】:请填写出现问题的品牌和机型 小米10U
出现问题的安卓版本【必填】:请填写出现问题的 Android 版本 12
是部分机型还是所有机型都会出现【必答】:部分/全部(例如:某为,某 Android 版本会出现) 未测试其他机型
框架最新的版本是否存在这个问题【必答】:是/否(如果用的是旧版本的话,建议升级看问题是否还存在) 是
是否已经查阅框架文档还未能解决的【必答】:是/否(文档会提供最常见的问题解答,可以看看是否有自己想要的) 是
issue 是否有人曾提过类似的问题【必答】:是/否(看看曾经有人提过类似的问题,先参考一下别人是怎么解决的)无
是否可以通过 Demo 来复现该问题【必答】:是/否(排查一下是不是自己的项目代码写得有问题导致的)是
使用原生的 shape.xml 来实现是否也会出现该问题【必答】:是/否(排查一下是不是框架的代码存在问题导致的)
提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)
提供截图或视频(根据需要提供,此项不强制)
<com.hjq.shape.layout.ShapeRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/srl_item"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:minWidth="60dp"
android:paddingLeft="21dp"
android:paddingRight="21dp"
app:shape_radius="5dp"
app:shape_strokeColor="#CFD7E6"
app:shape_strokeWidth="1dp"/>
if (!carPictureBean.isSelected) {
itemBinding.srlItem.shapeDrawableBuilder.setStrokeWidth(1.dp.toInt())
.setStrokeColor("#CFD7E6".toColorInt()).intoBackground()
itemBinding.srlCorrect.isVisible = false
} else {
itemBinding.srlItem.shapeDrawableBuilder.setStrokeWidth(2.dp.toInt())
.setStrokeColor("#000000".toColorInt()).intoBackground()
itemBinding.srlCorrect.isVisible = true
}
我的布局设置为了宽度自适应 但是有个最小值为60dp 布局用作在rv上,通过点击item我动态给布局加上边框 整个布局就直接撑满了
框架版本【必填】:8.0
问题描述【必填】:阴影
复现步骤【必填】:XXX
是否必现【必填】:填是/否
出现问题的手机信息【必填】:请填写出现问题的品牌和机型
出现问题的安卓版本【必填】:请填写出现问题的 Android 版本
是部分机型还是所有机型都会出现【必答】:部分/全部(例如:某为,某 Android 版本会出现)
框架最新的版本是否存在这个问题【必答】:是/否(如果用的是旧版本的话,建议升级看问题是否还存在)
是否已经查阅框架文档还未能解决的【必答】:是/否(文档会提供最常见的问题解答,可以看看是否有自己想要的)
issue 是否有人曾提过类似的问题【必答】:是/否(看看曾经有人提过类似的问题,先参考一下别人是怎么解决的)
是否可以通过 Demo 来复现该问题【必答】:是/否(排查一下是不是自己的项目代码写得有问题导致的)
使用原生的 shape.xml 来实现是否也会出现该问题【必答】:是/否(排查一下是不是框架的代码存在问题导致的)
框架的阴影很方便 但是在开发中遇到一个,比如一个view是宽180dp高200dp UI图上是20dp的阴影宽度 所以我在写布局的时候 高宽各加了 阴影宽度x2 ,但实际效果出来 不用阴影的180dp 200dp画出来的view 比用阴影180dp+ 20x2 200dp+20x2 画出来的要大一些,我想确认在用阴影的时候是不是我这样去计算增加view的高宽,理论上这样计算阴影的view画出来的应该和不带阴影的是一个大小,我指的是不含阴影处
提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)
提供截图或视频(根据需要提供,此项不强制)
如题
`val llybg=holder.getView(R.id.lly_item_bg)
if (item.isChecked){
llybg.shapeDrawableBuilder.solidColor = context.resources.getColor(R.color.color_FFF8E5)
holder.setTextColor(R.id.tv_item_title,context.resources.getColor(R.color.color_FFBB00))
}else{
llybg.shapeDrawableBuilder.solidColor = context.resources.getColor(R.color.color_F8F8F8)
holder.setTextColor(R.id.tv_item_title,context.resources.getColor(R.color.color_242925))
}`
有个对ImageView加遮罩的需求,我用的ShapeImageView,如果加一层ShapeFrameLayout之类的,略显繁琐了,如果能直接支持foreground相关属性就完美了,希望作者大大能考虑下,谢谢。
目前加shape_shadow 显示都是四边有阴影,能否给指定的一个边,如上边 加阴影
设置 solidColor 颜色后,如何动态 删除solidColor 设置呢
框架版本【必填】:v8.3
问题描述【必填】:有个需求选中时设置了 solidColor,想取消选中时,删除 solidColor,不知道使用哪个api 删除
复现步骤【必填】:列表 点击
是否必现【必填】:是
出现问题的手机信息【必填】:所有手机
出现问题的安卓版本【必填】:所有版本
框架版本【必填】:8.3
问题描述【必填】:纯色背景切换为渐变色的时候正常,反切换的时候就出现了异常 无法切换为纯色背景
复现步骤【必填】:首先通过xml设置纯色背景,然后再代码中设置为渐变色背景最后再切换会纯色背景就无法切换成功
if (isShow) {
shapeButton.getShapeDrawableBuilder()
.setSolidGradientColors(0xFFFFFFF, 0xFF000000)
.intoBackground();
} else {
shapeButton.getShapeDrawableBuilder()
.setSolidColor(0xFF000000)
.intoBackground();
}
是否必现【必填】:是
出现问题的手机信息【必填】:红米k30 vivo v1838A
出现问题的安卓版本【必填】:android 12以及android 11
是部分机型还是所有机型都会出现【必答】:全部
框架最新的版本是否存在这个问题【必答】:是
是否已经查阅框架文档还未能解决的【必答】:是
issue 是否有人曾提过类似的问题【必答】:否
是否可以通过 Demo 来复现该问题【必答】:是
使用原生的 shape.xml 来实现是否也会出现该问题【必答】:否
提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)
提供截图或视频(根据需要提供,此项不强制)
提供解决方案(如果已经解决了的话,此项不强制)
现在设置了阴影,默认就是四个方向都会出现阴影,能否增加一个设置指定方向阴影的属性?
ShapeConstraintLayout设置了shape_radius,父容器里包含了一个ImageView,但是图片并没有被按照预想的被应用父容器设置的radius。
代码如下:
<com.hjq.shape.layout.ShapeConstraintLayout
android:id="@+id/first"
android:layout_width="124dp"
android:layout_height="124dp"
android:padding="1dp"
app:shape_solidColor="@color/theme_color"
android:layout_marginTop="@dimen/dimen_20"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title"
app:shape_radius="@dimen/dimen_14">
<com.hjq.shape.view.ShapeImageView
android:id="@+id/iv_first"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@mipmap/tj" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/icon_ghph_normal"
app:layout_constraintBottom_toBottomOf="@+id/iv_first"
app:layout_constraintEnd_toEndOf="@+id/iv_first" />
</com.hjq.shape.layout.ShapeConstraintLayout>
框架版本【必填】:8.2
问题描述【必填】:使用ShapeConstraintLayout 以及 ShapeView 设置阴影的时候 阴影区域会全黑
复现步骤【必填】:XXX
是否必现【必填】:是
出现问题的手机信息【必填】:OPPO R11s 2017年11月份发布的手机 也确实有点老了 但是还能做调试机
出现问题的安卓版本【必填】:8.1.0
是部分机型还是所有机型都会出现【必答】:部分 目前仅OPPO R11s 但不确定OPPO其他机型有没有问题
框架最新的版本是否存在这个问题【必答】:是
是否已经查阅框架文档还未能解决的【必答】:是
issue 是否有人曾提过类似的问题【必答】:否
是否可以通过 Demo 来复现该问题【必答】:是
使用原生的 shape.xml 来实现是否也会出现该问题【必答】:否
<com.hjq.shape.layout.ShapeConstraintLayout
android:layout_width="match_parent"
android:id="@+id/cl_test"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
app:shape_shadowSize="6dp"
app:shape_shadowColor="@color/shadowColor"
app:shape_solidColor="@color/white"
app:layout_constraintTop_toBottomOf="@id/cl_top"
android:layout_height="100dp"/>
图片是真机通过scrcpy接到电脑的 不是模拟器 是真机调试
框架版本【必填】:8.2
问题描述【必填】:使用阴影和不使用阴影的view大小不一致框架的阴影很方便 但是在开发中遇到一个,比如一个view是宽180dp高200dp UI图上是20dp的阴影宽度 所以我在写布局的时候 高宽各加了 阴影宽度x2 ,但实际效果出来 不用阴影的180dp 200dp画出来的view 比用阴影180dp+ 20x2 200dp+20x2 画出来的要大一些,我想确认在用阴影的时候是不是我这样去计算增加view的高宽,理论上这样计算阴影的view画出来的应该和不带阴影的是一个大小,我指的是不含阴影处
复现步骤【必填】:XXX
是否必现【必填】:是
出现问题的手机信息【必填】:小米10
出现问题的安卓版本【必填】:12
是部分机型还是所有机型都会出现【必答】:全部
框架最新的版本是否存在这个问题【必答】:是
是否已经查阅框架文档还未能解决的【必答】:是
issue 是否有人曾提过类似的问题【必答】:是)
是否可以通过 Demo 来复现该问题【必答】:是
使用原生的 shape.xml 来实现是否也会出现该问题【必答】:否
提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)
提供截图或视频(根据需要提供,此项不强制)
想要有类似下面的属性
icon_normal_left/right/top/bottom | 图标 未选中 各方向 |
---|---|
icon_checked_left/right/top/bottom | 图标 选中 各方向 |
类似于Textview有drawLeft一样,你和这个好像不支持 |
官方已不再升级和维护support库,gradle.properties 若是不配置android.useAndroidX=true android.enableJetifier=true 则无法使用ShapeTextView等控件
最近发现有很多人给我提 issue 没有认真按照模板上面的来填写,导致了在排查问题的过程中浪费了作者许多不必要的时间和精力,所以请后面提 issue 的人务必严格遵守,否则我不会受理,直接关闭 issue。
代码如下
<com.hjq.shape.view.ShapeTextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_margin="10dp"
android:gravity="center"
android:padding="10dp"
android:text="垂直线性渐变"
android:textColor="@android:color/black"
android:textSize="14sp"
app:shape="rectangle"
app:shape_angle="90"
app:shape_endColor="#ffdff8f0"
app:shape_startColor="#fff7fefe"
app:shape_shadowSize="9dp"
app:shape_shadowColor="#50000000"
app:shape_shadowOffsetX="5dp"
app:shape_shadowOffsetY="5dp"
app:shape_topLeftRadius="12dp"
app:shape_topRightRadius="12dp"
app:shape_bottomRightRadius="12dp"
app:shape_bottomLeftRadius="0dp"
/>
框架版本【必填】:8.3
问题描述【必填】:使用ShapeRelativeLayout的时候给布局设置宽度为wrap_content minWidth="60dp" 通过代码修改该布局的setStrokeWidth和setStrokeColor 布局宽度会直接撑满
复现步骤【必填】:给ShapeRelativeLayout设置最小宽度 再通过代码修改边框和(注意:目前不受理没有复现步骤的 Bug 单)
是否必现【必填】:填是/否 是
出现问题的手机信息【必填】:请填写出现问题的品牌和机型 小米10u
出现问题的安卓版本【必填】:请填写出现问题的 Android 版本 android 12
是部分机型还是所有机型都会出现【必答】:部分/全部(例如:某为,某 Android 版本会出现)所有
框架最新的版本是否存在这个问题【必答】:是/否(如果用的是旧版本的话,建议升级看问题是否还存在)是
是否已经查阅框架文档还未能解决的【必答】:是/否(文档会提供最常见的问题解答,可以看看是否有自己想要的)是
issue 是否有人曾提过类似的问题【必答】:是/否(看看曾经有人提过类似的问题,先参考一下别人是怎么解决的)否
是否可以通过 Demo 来复现该问题【必答】:是/否(排查一下是不是自己的项目代码写得有问题导致的)是
使用原生的 shape.xml 来实现是否也会出现该问题【必答】:是/否(排查一下是不是框架的代码存在问题导致的)否
提供报错堆栈(如果有报错的话必填,注意不要拿被混淆过的代码堆栈上来)
提供截图或视频(根据需要提供,此项不强制)
框架版本【必填】:com.github.getActivity:ShapeView:8.0 8.2 ShapeView-8.3.aar
问题描述【必填】:使用shape_shadowSize页面会错乱, RecyclerView内容超出, 数据量小不明显,稍微多一些会看到内容从最底部滑动上去, 可看视频
复现步骤【必填】:只需要在代码中注释shape_shadowSize即可看到区别
是否必现【必填】:是
出现问题的手机信息【必填】:华为Mate10 Mate30pro
出现问题的安卓版本【必填】:Android10
是部分机型还是所有机型都会出现【必答】:不确定
框架最新的版本是否存在这个问题【必答】:是
是否已经查阅框架文档还未能解决的【必答】:是
issue 是否有人曾提过类似的问题【必答】:否
是否可以通过 Demo 来复现该问题【必答】:是
使用原生的 shape.xml 来实现是否也会出现该问题【必答】:否
需求如题
在开发中,有碰到textView、editView只有底部等单边画上边框线,其它三边不用加,可不可以增加属性来设置左边,右边,上边,下边边框线独立设置有没有,或者不同颜色。
<com.hjq.shape.view.ShapeImageView
android:layout_width="86dp"
android:layout_height="86dp"
android:layout_gravity="center"
android:padding="8dp"
android:src="@drawable/blank_img"
app:shape_radius="8dp"
app:shape_solidColor="#1Affffff"
app:shape_shadowSize="30dp"
app:shape_shadowColor="#45FFDC78"
app:shape_strokeColor="#FEDF65"
app:shape_strokeWidth="2dp" />
这样 stroke就会消失,去掉shadow的配置就能显示stroke。
目前只有单独加了一层ShapeView做的shadow
<com.hjq.shape.view.ShapeEditText
android:id="@+id/etEmail"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginHorizontal="40dp"
android:gravity="center_vertical"
android:hint="邮箱"
android:inputType="textEmailAddress"
android:paddingHorizontal="10dp"
app:layout_constraintTop_toTopOf="parent"
app:shape_solidColor="#ffffff"
app:shape_strokeColor="#000000"
app:shape_strokeWidth="1dp" />
框架版本【必填】:implementation 'com.github.getActivity:ShapeView:8.3'
问题描述【必填】:ShapeLinearLayout里面放cardview,设置ShapeLinearLayout阴影后,cardview圆角无效了,
是否必现【必填】:是
出现问题的手机信息【必填】:任何
出现问题的安卓版本【必填】:任何
是部分机型还是所有机型都会出现【必答】:全部
框架最新的版本是否存在这个问题【必答】:是
是否已经查阅框架文档还未能解决的【必答】:是
issue 是否有人曾提过类似的问题【必答】:否
是否可以通过 Demo 来复现该问题【必答】:否(
使用原生的 shape.xml 来实现是否也会出现该问题【必答】:否(
如题
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.