我试图将导航栏放在另一个导航栏下方,使其看起来像一个高大的导航栏.但是在iOS 7中,UINavigationBar现在在其顶部和底部都有内部阴影.我真的需要删除它.但我没有找到任何解决方案.它看起来像预渲染的阴影,但实际上它在视图出现后大约0.4秒内缓慢出现.
我几乎尝试了所有东西,但阴影依旧存在.我用以下代码删除了栏下方的水平线:
for (UIView *view in [[[self.navigationController.navigationBar subviews] objectAtIndex:0] subviews]) {
if ([view isKindOfClass:[UIImageView class]]) view.hidden = YES;
}
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何去除阴影.非常感谢!
我试过这个:
[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];
Run Code Online (Sandbox Code Playgroud)
但该代码甚至不会删除栏下方的水平线(此方法需要自定义背景图像).我用Xcode 5.0(5A11365x)
在最新的Material Design文档(https://www.google.com/design/spec/what-is-material/elevation-shadows.html#elevation-shadows-elevation-android-)中,引用了一组详尽的UI元素具有各自的高程(dp中的z指数).例如,一个开关升高了1dp,而一个对话框升高了24dp.目前,Google的UI元素列表使用了10种不同的提升级别.由于高程决定了元素的阴影,我们需要10个不同的阴影.这就是我迷失的地方.
如何计算/推导出每个高程水平的正确阴影值(颜色,x偏移,y偏移,模糊,扩散)?
我找到了不同的来源,计算了5个不同高程的阴影值(https://news.layervault.com/stories/42319-calculating-shadow-values-for-material-design).然而,5个提升步骤是不够的,他们也没有解释他们如何达到这些相应的价值观.
我在iOS 5中使用Core Graphics绘制了一个简单的路径:
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint( path, NULL, center.x , topMargin );
CGPathAddLineToPoint(path, NULL, center.x+20, topMargin+50);
CGPathAddLineToPoint(path, NULL, center.x , topMargin+40);
CGPathAddLineToPoint(path, NULL, center.x-20, topMargin+50);
CGPathAddLineToPoint(path, NULL, center.x , topMargin );
Run Code Online (Sandbox Code Playgroud)
现在我想填写Overlay模式,如下所示:
[[UIColor colorWithRed:0 green:0 blue:0 alpha:0.4] setFill];
CGContextAddPath(context, path);
CGContextSetBlendMode (context, kCGBlendModeOverlay);
CGContextFillPath(context);
Run Code Online (Sandbox Code Playgroud)
这给了我完全预期的结果.但接下来,我想创造一个浮雕效果.我想过使用白色和黑色阴影来实现这样的效果:
[[UIColor colorWithRed:0 green:0 blue:0 alpha:0] setFill];
CGContextAddPath(context, path);
CGContextSetShadowWithColor(context, CGSizeMake(1, 1), 1.0, highlightColor);
CGContextSetBlendMode (context, kCGBlendModeNormal);
CGContextFillPath(context);
[[UIColor colorWithRed:0 green:0 blue:0 alpha:0] setFill];
CGContextAddPath(context, path);
CGContextSetShadowWithColor(context, CGSizeMake(-1, -1), 1.0, shadowColor);
CGContextSetBlendMode (context, kCGBlendModeNormal); …Run Code Online (Sandbox Code Playgroud) 是否可以更改CardView周围阴影的颜色?主要用于标记选中卡片时点亮的卡片?
应该在L和pre-L设备上有效.
来自appcompat的CollapsingToolbarLayout在折叠状态下显示阴影,但在展开(或在展开过程中)阴影消失时
我的示例代码https://github.com/NaikSoftware/CollapsingToolbarWithImageAndTabs/tree/master/app
布局
<?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/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="ua.naiksoftware.hidetabs.MainActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_plus_tabs"
app:contentScrim="@android:color/transparent"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap|enterAlways"
app:titleEnabled="false"
app:toolbarId="@+id/toolbar_wrapper">
<ImageView
android:id="@+id/appbar_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/header_back"
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:background="@android:color/transparent"
app:popupTheme="@style/AppTheme.PopupOverlay" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_wrapper"
android:layout_width="match_parent"
android:layout_gravity="bottom"
android:background="@android:color/transparent"
android:layout_height="wrap_content"
android:minHeight="@dimen/tab_layout_height">
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
app:tabGravity="fill"
app:tabIndicatorColor="@android:color/white"
app:tabMode="scrollable"
app:tabSelectedTextColor="@android:color/white" />
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_add_black_24dp"
android:layout_margin="@dimen/fab_margin"
android:tint="@android:color/white"
android:layout_gravity="bottom|end"
app:elevation="@dimen/fab_elevation"
app:layout_behavior="ua.naiksoftware.hidetabs.FabSlidingBehavior"/>
Run Code Online (Sandbox Code Playgroud)
我试图在我的观点下面留下一个阴影,从我在网上发现它应该很简单:
shadowOffset: { width: 10, height: 10 },
shadowColor: 'black',
shadowOpacity: 1.0,
Run Code Online (Sandbox Code Playgroud)
但问题是阴影根本没有出现.
这是我的组件
<View style={styles.shadow}>
<View style={styles.box} >
<View style={styles.ListComponent}>
<Text style={styles.itemText}>Livestream</Text>
</View>
</View>
</View>
Run Code Online (Sandbox Code Playgroud)
在我的StyleSheet中:
const styles = StyleSheet.create({
shadow: {
shadowOffset: { width: 10, height: 10 },
shadowColor: 'black',
shadowOpacity: 1.0
},
Run Code Online (Sandbox Code Playgroud)
有什么理由或有什么我错过了吗?
根据原始问题,最终结果是圆形矩形png,ImageView具有自然的下垂阴影.
我有阴影工作,但当它绘制时,它会使整个图像变黑.

添加阴影时,如何防止原始图像(绝对不是黑色)变黑?
BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);
int[] offsetXY = new int[2];
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);
Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);
Canvas c = new Canvas(shadowImage);
c.drawBitmap(originalBitmap, -offsetXY[0], -offsetXY[1], null);
imageView.setImageBitmap(shadowImage);
Run Code Online (Sandbox Code Playgroud)
更新:
我实现了Josh关于复制到正确色彩空间的建议,现在它的效果非常好!对于未来的搜索者,此代码会在图像视图上生成阴影.您可以使用x和y,以及OUTER常量来获得所需的效果.
BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);
int[] offsetXY = new int[2];
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);
Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);
Bitmap shadowImage32 = …Run Code Online (Sandbox Code Playgroud) 我有一个JPanel元素,我想添加一个阴影,我怎么能添加一个漂亮的褪色阴影到元素?我是否需要使用外部库或者是否有可以使用的内置库?
例:

我在TextStyle中搜索了阴影选项,但我没有找到.所以我问:如何在颤动的文本中添加阴影?可能吗?例:
new Text(
"asd"
style: new TextStyle(
//add shadow?
));
Run Code Online (Sandbox Code Playgroud) 我有一个简单的屏幕,里面有一个大约 100 高的蓝色容器。我想在容器底部添加阴影或高度。
这是我下面的代码
import 'package:flutter/material.dart';
import 'package:finsec/utils/strings.dart';
import 'package:finsec/utils/dimens.dart';
import 'package:finsec/utils/colors.dart';
void main() {
runApp(new IncomeFragment());
}
class IncomeFragment extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Stack(
children: <Widget>[
new Container(
height: margin_100dp,
color: colorPrimary,
),
new Container( //container to overlay on top of blue container
alignment: Alignment.topCenter,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text(
zero_amount,
style: TextStyle(color: white, fontSize: 40.0, fontWeight: FontWeight.bold)
),
],
),
)
],
);
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我在蓝色容器的底部添加阴影或高度吗?
见下图。shawdow 应该在红圈里 …
shadow ×10
android ×4
box-shadow ×2
dart ×2
flutter ×2
android-collapsingtoolbarlayout ×1
blur ×1
cgpath ×1
collapse ×1
containers ×1
drawbitmap ×1
ios ×1
ios7 ×1
java ×1
jpanel ×1
objective-c ×1
paint ×1
react-native ×1
swing ×1
text ×1