我正在使用它来制作一个带有磨砂玻璃效果的iOS主题JavaFX2(Java7)应用程序.问题是此代码使用它对ImageView的影响.我希望它对窗口后面的任何东西使用它的效果,如下所示:
反正有吗?我也喜欢你在上面的图像周围看到的小阴影效果.
为了清楚起见,我不想要那个滑块或任何东西,只是能够透过窗户看到边缘周围有轻微阴影的效果.不过,我想用这个iOS7-ish效果代替航空.
这可能很重要:我正在使用Undecorator的修改版本.
我想为使用iOS提供的NSString (UIStringDrawing)
类别方法绘制的文本添加阴影:
- (CGSize)drawAtPoint:(CGPoint)point forWidth:(CGFloat)width
withFont:(UIFont *)font minFontSize:(CGFloat)minFontSize
actualFontSize:(CGFloat *)actualFontSize
lineBreakMode:(UILineBreakMode)lineBreakMode
baselineAdjustment:(UIBaselineAdjustment)baselineAdjustment;
Run Code Online (Sandbox Code Playgroud)
显然,没有投影选项.
是的,可以在这里使用UILabel并获得设置的阴影属性,但这不会像性能一样,因为任何UIView子类(例如UILabel)都会包装CALayer对象并且会更重(性能明智).
这是上下文:
我正在为UITableViewCell子类做自定义绘图,drawRect:
在表格单元视图上实现,而不是从合成的UIView子类的Nib文件创建表格单元格.
合成一堆UIView子类会破坏尝试保持这种精简并在表视图滚动性能中保持在每秒50-60帧内的目的.
我尝试过轻微的偏移两次绘制字符串.一旦我调整了我要去的单元格的背景颜色上的投影颜色,这可能会变得可以接受,但它似乎相当笨拙.当然没有像UILabel那样的阴影模糊属性.
我搜索了解决方案,他们或者推荐UILabel使用(我上面已经解雇了,因为我有十几个不同的文本元素被合成到表格单元格视图)或者CGContextSetShadow()
.后者似乎总是在矩形形状的上下文中提出,并且不一定用于将阴影附加到直接使用上述NSString drawAtPoint...
方法绘制的文本的路径.(我确实尝试过,但它似乎没有用(即没有改变);我是Core Graphics绘图的新手).
建议?
我试图像第一张图片一样在整个表单周围留下阴影,除了那是WPF而不是WinForm.现在我想在winform上放下相同的阴影.
这就是我想要的......
不是这个......
我要添加阴影和中风的影子上UIView
这是我的设计师给我申请阴影,
对于投影,他告诉我使用RGB(176,199,226),不透明度为90%,距离为3,尺寸为5
对于描边阴影,他告诉应用RGB(209,217,226)大小为1和100%不透明度.
这是photoshop应用效果屏幕,
具有所需阴影的视图(预期输出)
我尝试了以下方法来获得投影
viewCheck.layer.masksToBounds = NO;
viewCheck.layer.cornerRadius = 5.f;
viewCheck.layer.shadowOffset = CGSizeMake(.0f,2.5f);
viewCheck.layer.shadowRadius = 1.5f;
viewCheck.layer.shadowOpacity = .9f;
viewCheck.layer.shadowColor = [UIColor colorWithRed:176.f/255.f green:199.f/255.f blue:226.f/255.f alpha:1.f].CGColor;
viewCheck.layer.shadowPath = [UIBezierPath bezierPathWithRect:viewCheck.bounds].CGPath;
Run Code Online (Sandbox Code Playgroud)
这就是它的结果,
我在理解如何将中风和阴影应用到photoshop截图中时遇到问题(我已在上面添加).如何应用距离,点差,大小,位置?
有人能指出我应用这些阴影的指南吗?有很多阴影效果出现,我想学习如何在这里提出每个问题!
谢谢 :)
如果我DropShadowEffect
向父元素添加一个子元素的文本是模糊的.为什么?
<Grid>
<Grid.Effect>
<DropShadowEffect />
</Grid.Effect>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Background="White">Test</TextBlock>
</Grid>
Run Code Online (Sandbox Code Playgroud)
更新:
与阴影
没影子
这有点让我疯狂.添加DropShadowEffect
到按钮.在IDE中它看起来像这样:
第二个按钮仅供参考DropShadowEffect
.你可以看到下一个没有区别.然后我构建项目,当它运行时它看起来像这样:
是什么导致了这种变化?这是两个按钮的XAML:
<Button Name="clearButton" Content="Clear" Click="clearButton_Click" Margin="5,0,5,0" MaxWidth="80" MinHeight="40"
TextOptions.TextFormattingMode="Display">
<Button.Effect>
<DropShadowEffect BlurRadius="5" ShadowDepth="3" />
</Button.Effect>
</Button>
<Button Content="Clear" Margin="5,5,5,0" MaxWidth="80" MinHeight="40" TextOptions.TextFormattingMode="Display" />
Run Code Online (Sandbox Code Playgroud)
编辑:采取@gretro确实让它看起来更好,但它仍然是不对的:
然而在IDE中再次看起来很好:
我的目标是在a的左侧和右侧添加一个投影#container div
,宽度为960px.
它#container
本身包含标题,导航菜单,主要内容,侧边栏和脚.但#container
由于图形,标题本身突出了自定义宽度.
因此,它的右侧和左侧没有添加投影.只有向下导航菜单才需要删除.这是因为标题设置为自定义宽度,并且超出了#container
自身范围.已经突然出现的东西左右两侧的阴影将破坏美学.
为了更好的可视化,我的网站看起来类似于http://www.doubleyourdating.com/,但标题元素在两侧突出.
我尝试#container
使用以下解决方案从导航菜单中向左侧和右侧添加阴影:
我想了一张1px高,1010像素宽的图像,它的两端有25px的"淡入淡出".我把它作为CSS #container div background-image
,但是,可能因为它#container
本身设置为960px宽,1010px宽的背景无法显示.请注意,更改960px宽度将在这个简单的2列布局中创建一连串的死亡.
我尝试在容器div"周围"拼凑一个临时阴影框div,但这不起作用,因为我的标题有一个比容器更宽的自定义宽度.
我该如何工作?
我通过添加WS_EX_LAYERED扩展样式创建了一个分层窗口:
wndClass.ExStyle = wndClass.ExStyle | WS_EX_LAYERED;
Run Code Online (Sandbox Code Playgroud)
Windows将使用黑色作为色度键颜色值.我要留下一个黑色的大边框,以使问题显而易见:
替代文字http://i45.tinypic.com/2qs002q.jpg
构建窗口后,我告诉它使用黑色作为色度键颜色:
SetLayeredWindowAttributes(hwnd, 0x00000000, 255, LWA_COLORKEY);
Run Code Online (Sandbox Code Playgroud)
现在,弹出分层窗口显示为部分透明:
替代文字http://i48.tinypic.com/2cfta3o.jpg
问题是最后一步.我想使用自Windows XP以来可用的CS_DROPSHADOW类样式来创建一个阴影:
wndClass.Style = wndClass.Style | CS_DROPSHADOW;
Run Code Online (Sandbox Code Playgroud)
出现阴影,但阴影围绕原始矩形窗口,并没有考虑分层窗口提供的窗口透明度:
http://i49.tinypic.com/23lnnu9.jpg
有谁知道我错过了什么神奇的选项,将使投影荣耀非矩形分层窗口?
出现此问题的另一个示例是当您不包含6px填充/边距时.由Windows®主题绘制的提示窗口是非矩形的.这会留下一个小的可见间隙,窗口是透明的,但不会出现阴影:
替代文字http://i47.tinypic.com/30arsxk.png
正如您从Internet Explorer的提示中看到的那样,Microsoft已设法使其正常工作:
替代文字http://i46.tinypic.com/f104cj.jpg
仔细观察Windows tooltips
类提示窗口.使用SpyXX - 我可以得到它的窗口rect和类样式:
http://i49.tinypic.com/f4pued.jpg
SpyXX说:
Rectangle: (440, 229)-(544, 249), 104x20
Restored Rect: (440, 229)-(544, 249), 104x20
Client Rect: (0, 0)-(104, 20), 104x20
Run Code Online (Sandbox Code Playgroud)
所以一切都指向窗口本身是104x20像素,窗口本身外面有阴影.(这符合CS_DROPSHADOW
.)
接下来我可以看一下tooltips
窗口类的样式:
Windows Styles: 94000001
WS_POPUP 80000000
WS_VISIBLE 10000000
WS_CLIPSIBLINGS 4000000
TTS_ALWAYSTIP 1 …
Run Code Online (Sandbox Code Playgroud) 如何从java代码中删除操作栏的阴影?
如果我从样式中删除它工作正常.
<style name="MyTheme" parent="Theme.Sherlock">
....
<item name="windowContentOverlay">@null</item>
<item name="android:windowContentOverlay">@null</item>
....
</style>
Run Code Online (Sandbox Code Playgroud)
但我需要从java代码中动态删除和添加它.
编辑:
我终于找到了一个真正简单的解决方案,使用CAGradientLayer类和CALayer绘图功能.
Ole Begemann为名为OBGradientView的 CAGradientLayer类发布了一个很棒的UIView包装器.
该类允许您在应用程序中轻松创建渐变UIView.
然后使用CALayer绘图功能添加圆角和投影值:
// Create the gradient view
OBGradientView *gradient = [[OBGradientView alloc] initWithFrame:someRect];
NSArray *colors = [NSArray arrayWithObjects:[UIColor redColor], [UIColor yellowColor], nil];
gradient.colors = colors;
// Set rounded corners and drop shadow
gradient.layer.cornerRadius = 5.0;
gradient.layer.shadowColor = [UIColor grayColor].CGColor;
gradient.layer.shadowOpacity = 1.0;
gradient.layer.shadowOffset = CGSizeMake(2.0, 2.0);
gradient.layer.shadowRadius = 3.0;
[self.view addSubview:gradient];
[gradient release];
Run Code Online (Sandbox Code Playgroud)
别忘了将QuartzCore框架添加到您的项目中.
原始问题:
我一直在研究一个自定义控件,它是一个圆角矩形按钮,填充线性渐变,并有一个投影.我使用这个答案填写了前两个步骤:链接文本
我现在的问题是在生成的形状下添加一个阴影.实际上,上下文被剪切到圆角矩形路径,所以当我使用CGContextSetShadow函数时,它不会绘制它.
我尝试通过绘制圆角矩形两次来解决这个问题,首先使用普通颜色,因此它绘制阴影,然后使用渐变填充重绘它.
它有点工作,但我仍然可以看到在第一次使用纯色绘制时形状角落处的几个像素,正如您在此缩放版本中看到的那样:
http://img269.imageshack.us/img269/6489/capturedcran20100701192.png
它几乎是好的,但还不完美......
这是我的-drawRect:实现:
static void addRoundedRectToPath(CGContextRef context, CGRect rect, float …
Run Code Online (Sandbox Code Playgroud)