气泡状view
来源:互联网 发布:java方法怎么定义泛型 编辑:程序博客网 时间:2024/06/11 16:26
//-(CGPathRef)createPathWithArrowDirection:(MessageViewArrowDirection)direction AndRelativeOrigin:(CGPoint)reletiveOrigin
-(CGPathRef)createPath
{
CGMutablePathRef path = CGPathCreateMutable();
CGRect rect=CGRectInset(self.bounds, 10, 20);
CGFloat minx = CGRectGetMinX(rect), midx = CGRectGetMidX(rect), maxx = CGRectGetMaxX(rect);
CGFloat miny = CGRectGetMinY(rect), midy = CGRectGetMidY(rect), maxy = CGRectGetMaxY(rect);
CGFloat radius=10.0;
CGPathMoveToPoint(path, NULL, minx, midy);
CGPathAddArcToPoint(path, NULL, minx, miny, midx, miny, radius);
CGPathAddLineToPoint(path, NULL, midx-10, miny);
CGPathAddLineToPoint(path, NULL, midx+ARROW_WIDTH/2.0+10, 0);
CGPathAddLineToPoint(path, NULL, midx+ARROW_WIDTH, miny);
CGPathAddArcToPoint(path, NULL, maxx, miny, maxx, midy, radius);
CGPathAddArcToPoint(path, NULL, maxx, maxy, midx, maxy, radius);
CGPathAddArcToPoint(path, NULL, minx, maxy, minx, midy, radius);
CGPathCloseSubpath(path);
return path;
}
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
//inner color
CGFloat R=0.0,G=0.0,B=0.0,A= 0.0;
CGColorRef color = _innerColor.CGColor;
int numComponents = CGColorGetNumberOfComponents(color);
if (numComponents==4)
{
const CGFloat *components = CGColorGetComponents(color);
R = components[0];
G = components[1];
B = components[2];
A = components[3];
}
CGContextRef context=UIGraphicsGetCurrentContext();
CGContextAddPath(context, [self createPath]);
CGContextSetRGBFillColor(context, R, G, B, A);
CGContextFillPath(context);
//outer color
CGContextBeginPath(context);
color = _outerColor.CGColor;
numComponents = CGColorGetNumberOfComponents(color);
if (numComponents==4)
{
const CGFloat *components = CGColorGetComponents(color);
R = components[0];
G = components[1];
B = components[2];
A = components[3];
}
context=UIGraphicsGetCurrentContext();
CGContextAddPath(context, [self createPath]);
CGContextSetRGBStrokeColor(context, R, G, B, A);
CGContextSetLineWidth(context, _outerWidth);
CGContextStrokePath(context);
}
![](http://img.my.csdn.net/uploads/201303/22/1363938934_5108.png)
-(CGPathRef)createPath
{
CGMutablePathRef path = CGPathCreateMutable();
CGRect rect=CGRectInset(self.bounds, 10, 20);
CGFloat minx = CGRectGetMinX(rect), midx = CGRectGetMidX(rect), maxx = CGRectGetMaxX(rect);
CGFloat miny = CGRectGetMinY(rect), midy = CGRectGetMidY(rect), maxy = CGRectGetMaxY(rect);
CGFloat radius=10.0;
CGPathMoveToPoint(path, NULL, minx, midy);
CGPathAddArcToPoint(path, NULL, minx, miny, midx, miny, radius);
CGPathAddLineToPoint(path, NULL, midx-10, miny);
CGPathAddLineToPoint(path, NULL, midx+ARROW_WIDTH/2.0+10, 0);
CGPathAddLineToPoint(path, NULL, midx+ARROW_WIDTH, miny);
CGPathAddArcToPoint(path, NULL, maxx, miny, maxx, midy, radius);
CGPathAddArcToPoint(path, NULL, maxx, maxy, midx, maxy, radius);
CGPathAddArcToPoint(path, NULL, minx, maxy, minx, midy, radius);
CGPathCloseSubpath(path);
return path;
}
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
//inner color
CGFloat R=0.0,G=0.0,B=0.0,A= 0.0;
CGColorRef color = _innerColor.CGColor;
int numComponents = CGColorGetNumberOfComponents(color);
if (numComponents==4)
{
const CGFloat *components = CGColorGetComponents(color);
R = components[0];
G = components[1];
B = components[2];
A = components[3];
}
CGContextRef context=UIGraphicsGetCurrentContext();
CGContextAddPath(context, [self createPath]);
CGContextSetRGBFillColor(context, R, G, B, A);
CGContextFillPath(context);
//outer color
CGContextBeginPath(context);
color = _outerColor.CGColor;
numComponents = CGColorGetNumberOfComponents(color);
if (numComponents==4)
{
const CGFloat *components = CGColorGetComponents(color);
R = components[0];
G = components[1];
B = components[2];
A = components[3];
}
context=UIGraphicsGetCurrentContext();
CGContextAddPath(context, [self createPath]);
CGContextSetRGBStrokeColor(context, R, G, B, A);
CGContextSetLineWidth(context, _outerWidth);
CGContextStrokePath(context);
}
![](http://img.my.csdn.net/uploads/201303/22/1363938934_5108.png)
- 气泡状view
- 自定义气泡背景View
- Android自定义view案例一气泡框
- 气泡状path
- 气泡
- 气泡
- 气泡
- 一个类似聊天气泡的自定义view 带个小箭头那种
- Android自定义View仿QQ消息拖拽气泡实现
- 微信气泡状ImageView
- hover显示与隐藏气泡状二维码
- BubbleButtonView - 将字符串分解为多个气泡然后排列到一个 view上
- android之View和LinearLayout的重写(实现背景气泡和波纹效果)
- Swift/OC 为View或ImageView设置聊天气泡的小三角
- Android-气泡对话框(根据被点击View位置显示、可定制)
- c# winform 如何实现弹出气泡状的提示框
- c# winform 如何实现弹出气泡状的提示框
- JQuery鼠标经过弹出气泡状提示框
- JS全局变量
- 设计模式学习系列十二:观察者模式(Observer)
- 《编程珠玑》习题-如何用位逻辑实现位向量
- 好看的细边框
- activeMQ的网络层1
- 气泡状view
- 我的知识管理工具列表
- mysql 常见操作&问题记录
- 友元函数和友元类
- 判断一个intent是否可用的接口
- JBoss Seam与Apache DeltaSpike的未来
- 阻塞,非阻塞IO和同步,异步IO
- wordpress所包含的函数及应用
- 增加tomcat并发量