问题描述
我正在尝试向 ImageView 添加投影.Stackoverflow 的另一个答案似乎是使用画布和位图等,比它需要的复杂得多.
在 iOS 上,我会这样做:
myImageView.layer.shadowColor = [UIColor redColor].CGColor;myImageView.layer.shadowRadius = 5;myImageView.layer.shadowOffset = CGRectMake(0, 5);
它会渲染一个阴影,无论阴影是应用在视图、图像还是文本上.
我尝试在 Android 上做同样的事情,但它只是拒绝工作:
birdImageView = new ImageView(context);birdImageView.setImageResource(R.drawable.yellow_bird);油漆油漆 = 新油漆();paint.setAntiAlias(true);birdImageView.setLayerType(LAYER_TYPE_SOFTWARE, null);paint.setShadowLayer(5, 0, 5, Color.argb(255, 255, 0, 0));birdImageView.setLayerPaint(paint);
我的鸟图像上根本看不到任何预期的红色阴影.
我做错了吗?
示例
假设我想要这样的阴影:
更新
我是否必须求助于 Android 5.0 和新的 Elevation api (http://developer.android.com/training/material/shadows-clipping.html) ?
但如果要使用新的 API,那么根据当前的人口统计数据 (http://www.droid-life.com/2016/02/02/android-distribution-february-2016/) 超过 50% 的用户将无法使用应用程序.
T_T
在 android studio 中有 build drawable
,你可以使用它来将阴影应用到任何 View
.这类似于投影.
android:background=@drawable/abc_menu_dropdown_panel_holo_light"
使用这个你不能改变视图的背景颜色 &它的边框颜色.如果您想要自己的自定义可绘制对象,请使用 layer-list
custom_drop_shadow_drawable.xml
<块引用>
并应用到您的视图,如下所示
android:background=@drawable/custom_drop_shadow_drawable"
希望对你有帮助!感谢Android View shadow
I'm trying to add a drop shadow to an ImageView. The other Stackoverflow answer seems to be using canvas and bitmaps etc, way more complicated than it needs to be.
On iOS I would do something like this:
myImageView.layer.shadowColor = [UIColor redColor].CGColor;
myImageView.layer.shadowRadius = 5;
myImageView.layer.shadowOffset = CGRectMake(0, 5);
and it would render a drop shadow, regardless of whether the shadow is being applied on a view, an image or text.
I've tried to do the same on Android but it just refuses to work:
birdImageView = new ImageView(context);
birdImageView.setImageResource(R.drawable.yellow_bird);
Paint paint = new Paint();
paint.setAntiAlias(true);
birdImageView.setLayerType(LAYER_TYPE_SOFTWARE, null);
paint.setShadowLayer(5, 0, 5, Color.argb(255, 255, 0, 0));
birdImageView.setLayerPaint(paint);
I don't see any expected red drop shadow on my bird image at all.
Am I doing something wrong?
Example
Let's say I want the drop shadow like this:
Update
Do I have to resort to Android 5.0 and the new Elevation api (http://developer.android.com/training/material/shadows-clipping.html) ?
But if one was to use new API, then according to current demographics (http://www.droid-life.com/2016/02/02/android-distribution-february-2016/) more than 50% of users will not be able to use the app.
T_T
In android studio there is in build drawable
that you can use for apply shadow to any View
. That is similar like a drop shadow.
android:background="@drawable/abc_menu_dropdown_panel_holo_light"
Using this you can not change the background color of the view & its border color. If you want your own custom drawable then use layer-list
custom_drop_shadow_drawable.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--the shadow comes from here-->
<item
android:bottom="0dp"
android:drawable="@android:drawable/dialog_holo_light_frame"
android:left="0dp"
android:right="0dp"
android:top="0dp">
</item>
<item
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp">
<!--whatever you want in the background -->
<shape android:shape="rectangle">
<solid android:color="@android:color/red" />
</shape>
</item>
</layer-list>
and apply to your view like below
android:background="@drawable/custom_drop_shadow_drawable"
Hope it will help you! Thanks Android View shadow
这篇关于Android ImageView 投影的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!