loopeer / shadow Goto Github PK
View Code? Open in Web Editor NEWDeprecated because of the performance not fine. Android custom shadow view, can replace your CardView
Deprecated because of the performance not fine. Android custom shadow view, can replace your CardView
通过
shadowView.setBackgroundClr(Color.BLACK);
设置背景颜色无效,设置背景没有更新画笔颜色
private fun updateBackgroundClr(bgColor:Int){
//起作用
bgPaint.color=bgColor
invalidate()
}
Why not make this view extends FrameLayout ? The layout_gravity is useless now.
超出屏幕很多 就不显示全部控件了
Example link - https://image.ibb.co/c6oYCS/2018_04_13_10_45_08.png
It seems like a typo.
is there any way to do this with programming?
I'm use with com.moos.library.CircleProgressView not smooth when render
与gsyvideoplayer冲突,使用之后gsyvideoplayer不能显示视频画面
在布局中使用水波纹点击效果时,点击出现明显卡顿
<com.loopeer.shadow.ShadowView 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"
android:layout_marginStart="11dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="11dp"
android:layout_marginBottom="8dp"
android:foreground="?attr/selectableItemBackground"
app:cornerRadius="4dp"
app:shadowColor="#140282FF"
app:shadowMargin="4dp"
app:shadowRadius="4dp">
在列表内使用会造成滑动卡顿
Android resource compilation failed
duplicate value for resource 'attr/layout_gravity' with config ''
resource previously defined here.
When I put weight in the head of RecycleView, there will be obvious carton slipping.
就是按压的时候抬起的动画
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F5F5F5"
android:orientation="vertical"
tools:context="com.loopeer.example.shadows.ShadowViewActivity">
<FrameLayout
android:id="@+id/bottom_sheet"
android:layout_width="match_parent"
android:layout_height="300dp"
android:background="@android:color/white"
android:elevation="8dp"
app:behavior_hideable="false"
app:behavior_peekHeight="100dp"
app:layout_behavior="@string/bottom_sheet_behavior">
<android.support.v7.widget.RecyclerView
android:id="@+id/view_recycler"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:paddingBottom="16dp" />
</FrameLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.loopeer.shadow.ShadowView
android:id="@+id/shadow_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="12dp"
android:elevation="10dp"
android:foreground="?attr/selectableItemBackground"
android:onClick="onShadowClickTest"
android:padding="10dp"
app:cornerRadius="4dp"
app:shadowDx="100"
app:shadowDy="100"
app:shadowMargin="20dp"
app:shadowRadius="14dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/large_text" />
</com.loopeer.shadow.ShadowView>
</ScrollView>
</android.support.design.widget.CoordinatorLayout>
<string name="large_text">
"Material is the metaphor.\n\n"
"A material metaphor is the unifying theory of a rationalized space and a system of motion."
"The material is grounded in tactile reality, inspired by the study of paper and ink, yet "
"technologically advanced and open to imagination and magic.\n"
"Surfaces and edges of the material provide visual cues that are grounded in reality. The "
"use of familiar tactile attributes helps users quickly understand affordances. Yet the "
"flexibility of the material creates new affordances that supercede those in the physical "
"world, without breaking the rules of physics.\n"
"The fundamentals of light, surface, and movement are key to conveying how objects move, "
"interact, and exist in space and in relation to each other. Realistic lighting shows "
"seams, divides space, and indicates moving parts.\n\n"
"Bold, graphic, intentional.\n\n"
"The foundational elements of print based design typography, grids, space, scale, color, "
"and use of imagery guide visual treatments. These elements do far more than please the "
"eye. They create hierarchy, meaning, and focus. Deliberate color choices, edge to edge "
"imagery, large scale typography, and intentional white space create a bold and graphic "
"interface that immerse the user in the experience.\n"
"An emphasis on user actions makes core functionality immediately apparent and provides "
"waypoints for the user.\n\n"
"Motion provides meaning.\n\n"
"Motion respects and reinforces the user as the prime mover. Primary user actions are "
"inflection points that initiate motion, transforming the whole design.\n"
"All action takes place in a single environment. Objects are presented to the user without "
"breaking the continuity of experience even as they transform and reorganize.\n"
"Motion is meaningful and appropriate, serving to focus attention and maintain continuity. "
"Feedback is subtle yet clear. Transitions are efficient yet coherent.\n\n"
"3D world.\n\n"
"The material environment is a 3D space, which means all objects have x, y, and z "
"dimensions. The z-axis is perpendicularly aligned to the plane of the display, with the "
"positive z-axis extending towards the viewer. Every sheet of material occupies a single "
"position along the z-axis and has a standard 1dp thickness.\n"
"On the web, the z-axis is used for layering and not for perspective. The 3D world is "
"emulated by manipulating the y-axis.\n\n"
"Light and shadow.\n\n"
"Within the material environment, virtual lights illuminate the scene. Key lights create "
"directional shadows, while ambient light creates soft shadows from all angles.\n"
"Shadows in the material environment are cast by these two light sources. In Android "
"development, shadows occur when light sources are blocked by sheets of material at "
"various positions along the z-axis. On the web, shadows are depicted by manipulating the "
"y-axis only. The following example shows the card with a height of 6dp.\n\n"
"Resting elevation.\n\n"
"All material objects, regardless of size, have a resting elevation, or default elevation "
"that does not change. If an object changes elevation, it should return to its resting "
"elevation as soon as possible.\n\n"
"Component elevations.\n\n"
"The resting elevation for a component type is consistent across apps (e.g., FAB elevation "
"does not vary from 6dp in one app to 16dp in another app).\n"
"Components may have different resting elevations across platforms, depending on the depth "
"of the environment (e.g., TV has a greater depth than mobile or desktop).\n\n"
"Responsive elevation and dynamic elevation offsets.\n\n"
"Some component types have responsive elevation, meaning they change elevation in response "
"to user input (e.g., normal, focused, and pressed) or system events. These elevation "
"changes are consistently implemented using dynamic elevation offsets.\n"
"Dynamic elevation offsets are the goal elevation that a component moves towards, relative "
"to the component’s resting state. They ensure that elevation changes are consistent "
"across actions and component types. For example, all components that lift on press have "
"the same elevation change relative to their resting elevation.\n"
"Once the input event is completed or cancelled, the component will return to its resting "
"elevation.\n\n"
"Avoiding elevation interference.\n\n"
"Components with responsive elevations may encounter other components as they move between "
"their resting elevations and dynamic elevation offsets. Because material cannot pass "
"through other material, components avoid interfering with one another any number of ways, "
"whether on a per component basis or using the entire app layout.\n"
"On a component level, components can move or be removed before they cause interference. "
"For example, a floating action button (FAB) can disappear or move off screen before a "
"user picks up a card, or it can move if a snackbar appears.\n"
"On the layout level, design your app layout to minimize opportunities for interference. "
"For example, position the FAB to one side of stream of a cards so the FAB won’t interfere "
"when a user tries to pick up one of cards.\n\n"
</string>
Show nothing,and there are warn:
com.loopeer.example.shadows W/View: ShadowView not displayed because it is too large to fit into a software layer (or drawing cache), needs 37307904 bytes, only 14745600 available
xml中设置属性可以展示阴影效果,但是把数据移动到代码中动态控制的时候没有生效,
希望能添加阴影透明度属性
Simply use this:
implementation 'com.github.elmliu:shadow:0.2'
my app crashing when i add 🔘 button
我也使用的kotlin-android 一导入这个库,能build成功,但运行就报错
Program type already present: androidx.activity.ktx.R$attr
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
Caused by: com.android.tools.r8.utils.AbortException: Error: Program type already present: androidx.activity.ktx.R$attr
添加 exclude 也没有效果
Hey if it's possible could You downgrade Android SDK to version 16
I set shadowDx,Dy in xml like this
app:shadowDx="50"
app:shadowDy="50"
but it not working
in ShadowView.kt, this code in init method
shadowDx = a.getFloat(R.styleable.ShadowView_shadowDx, 0f)
shadowDy = a.getFloat(R.styleable.ShadowView_shadowDy, 0f)
bgPaint.setShadowLayer(shadowRadius, 0f, 1f,shadowColor)
I don't understand, why???
AAPT: error: duplicate value for resource 'attr/layout_gravity' with config ''.
能否把最低支持版本降到1.6
The library is located in jcenter repository which is deprecated. Please change the repository to mavenentral that is a non-deprecated repository so that it is using a stable repository, it would help a lot.
不支持背景,有些圆角设置也无法设置
I tried to use shadow view like the following
`<com.loopeer.shadow.ShadowView
android:id="@+id/empty_medication_card_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:background="@color/white"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:paddingBottom="40dp"
android:paddingTop="60dp"
app:shadowRadius="20dp"
app:cornerRadius="20dp"
app:shadowMargin="5dp"
app:shadowColor="@color/color_accent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
///////////// I used group view that has another views ...
</com.loopeer.shadow.ShadowView>`
it display correctly in android 6 and later but its totally ignored in previous versions ..
解决方法:
setLayerType(LAYER_TYPE_HARDWARE, null);
仓库作者自己改下吧,关于第2个问题不显示我也不知道为什么,因为按理说软件绘制应该支持所有的效果,但是确实这里有问题。
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.