`

iPhone 画圆角矩形

阅读更多

@implementation BrightnessController

// MyCreateBitmapContext: Source based on Apple Sample Code
CGContextRef MyCreateBitmapContext (int pixelsWide,
									int pixelsHigh)
{
    CGContextRef    context = NULL;
    CGColorSpaceRef colorSpace;
    void *          bitmapData;
    int             bitmapByteCount;
    int             bitmapBytesPerRow;
	
    bitmapBytesPerRow   = (pixelsWide * 4);
    bitmapByteCount     = (bitmapBytesPerRow * pixelsHigh);
	
    colorSpace = CGColorSpaceCreateDeviceRGB();
    bitmapData = malloc( bitmapByteCount );
    if (bitmapData == NULL)
    {
        fprintf (stderr, "Memory not allocated!");
		CGColorSpaceRelease( colorSpace );
        return NULL;
    }
    context = CGBitmapContextCreate (bitmapData,
									 pixelsWide,
									 pixelsHigh,
									 8,
									 bitmapBytesPerRow,
									 colorSpace,
									 kCGImageAlphaPremultipliedLast);
    if (context== NULL)
    {
        free (bitmapData);
        fprintf (stderr, "Context not created!");
        return NULL;
    }
    CGColorSpaceRelease( colorSpace );
	
    return context;
}

// addRoundedRectToPath: Source based on Apple Sample Code
static void addRoundedRectToPath(CGContextRef context, CGRect rect, float ovalWidth,
								 float ovalHeight)
{
	float fw, fh;
	if (ovalWidth == 0 || ovalHeight == 0) {
		CGContextAddRect(context, rect);
		return;
	}
	
	CGContextSaveGState(context);
	CGContextTranslateCTM(context, CGRectGetMinX(rect), CGRectGetMinY(rect));
	CGContextScaleCTM(context, ovalWidth, ovalHeight);
	fw = CGRectGetWidth(rect) / ovalWidth;
	fh = CGRectGetHeight(rect) / ovalHeight;
	
	CGContextMoveToPoint(context, fw, fh/2);  // Start at lower right corner
	CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1);  // Top right corner
	CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1); // Top left corner
	CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1); // Lower left corner
	CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1); // Back to lower right
	
	CGContextClosePath(context);
	CGContextRestoreGState(context);
}

// Build an image tinted at the given percentage
id createImage(float percentage)
{
	CGContextRef context  = MyCreateBitmapContext(30, 30);
	addRoundedRectToPath(context, CGRectMake(0.0f, 0.0f, 30.0f, 30.0f), 4.0f, 4.0f);
	CGFloat gray[4] = {percentage, percentage, percentage, 1.0f};
	CGContextSetFillColor(context, gray);
	CGContextFillPath(context);
	CGImageRef myRef = CGBitmapContextCreateImage (context);
	free(CGBitmapContextGetData(context));
	CGContextRelease(context);
	return [UIImage imageWithCGImage:myRef];
}


#define MAXDEPTH 8

-(BrightnessController *) initWithBrightness: (int) aBrightness
{
	self = [super init];
	brightness = aBrightness;
	self.title = [NSString stringWithFormat:@"%d%%", brightness * 10];
	[self.tabBarItem initWithTitle:self.title image:createImage(((float) brightness / 10.0f)) tag:0];
	return self;
}

- (void)loadView
{
	UIView *contentView = [[UIView alloc] init];
	float percent = brightness * 0.1;
	contentView.backgroundColor = [UIColor colorWithRed:percent green:percent blue:percent alpha:1.0];
	contentView.autoresizesSubviews = YES;
	contentView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
	self.view = contentView;
    [contentView release];
}


@end
 
分享到:
评论
2 楼 mislay 2010-08-12  
没有边框的. 不过这个有没有边框无所谓呀,可以自己画的嘛
1 楼 marshluca 2010-08-12  
出来的圆角有白色边框吗

相关推荐

    IOS圆角图标,PSD文件

    6. "iOS_7_Base_Roundrect_for_iPhone.psd":此文件可能提供了一个基本的圆角矩形图层,用于构建其他图标的基础形状。 7. "西部E网-更多的软件资讯.url":这似乎是一个网站链接,可能提供了更多关于软件设计和资讯的...

    Android实现iphone圆角ListView和点击的效果

    我们可以通过为ListView的每个条目设置一个带有圆角的背景图片或使用XML drawable资源来创建圆角矩形。 1. 创建一个XML布局文件(如`list_item.xml`)作为ListView的单个条目。在这个布局文件中,你可以定义一个...

    android listview 圆角的实现方案,模仿Iphone的UITableView

    在onDraw()中使用Canvas的drawRoundRect()方法绘制矩形,并设置适当的圆角半径。 3. **使用CardView组件**:Google推出的CardView可以方便地实现圆角效果。将ListView的每个列表项包裹在CardView内,设置CardView的...

    iOS实现圆角箭头矩形的提示框

    例如,我们可以从矩形的一个角出发,画一条线到箭头尖端,然后通过两个弧形点形成箭头的两个侧翼。完成箭头的绘制后,再用CGContextFillPath填充颜色,这样我们就得到了一个带有圆角和箭头的矩形提示框。 需要注意...

    axure部件库---iOS和iPhone

    因此,此部件库中的组件将遵循这些原则,包括但不限于清晰的图标、扁平化的设计、以及苹果特有的圆角矩形和阴影效果。 "IPhone Bodies All.rplib"可能包含各种iPhone设备的模型,如iPhone X、iPhone 11、iPhone 12...

    android实现IPHONE界面

    这通常涉及到重写`onDraw()`方法,在其中绘制特定的图形元素,如圆角矩形、阴影效果等,这些都是iPhone界面的典型特征。 2. **圆角矩形**: iPhone的界面元素往往具有圆润的边角。在Android中,你可以使用`Paint`...

    优秀的PPT动画学习资料 PPT模板 适合员工转正,个人简历,工作总结,毕业答辩,述职报告

    比如程序启动时由小变大向前推出显示, 比如iphone的程序切换时的动画, 比如圆角矩形的边框, 比如水波纹的动画效果 另外, 还有超炫的目录页面动画, 还有表示当前播放到哪一部分的漂亮的动态圆点行, 还有自动生成页码,...

    IPhone图标制作工具

    3. 背景与边框:iPhone图标通常有圆角矩形背景,该工具可能会提供预设的边框样式或允许用户自定义边框形状,如圆角半径、边框宽度和颜色。 4. 文字与符号:如果需要在图标中加入文字或特殊符号,工具应提供文本编辑...

    Delphi模仿iPhone

    这可能包括了自定义控件的设计,以模拟iPhone的圆角矩形、半透明效果以及触控反馈等功能,使得最终的应用程序在Windows操作系统上也能提供接近iOS的视觉体验。 【标签】"Delphi 模仿 iPhone 按钮 Icon"进一步强调了...

    iPhone手机界面特效

    在WPF中,我们可以使用XAML(Extensible Application Markup Language)来定义和布局UI元素,模仿iPhone的界面风格,包括圆角矩形、阴影效果、半透明层以及平铺式图标等。 接下来,我们关注的是"内置的MVC框架"。...

    iPhone样式的 Alertdialog

    这个"iPhone样式的AlertDialog"通常指的是具有苹果设备特有的交互效果和视觉风格的对话框,比如圆角矩形、半透明背景以及简洁的按钮布局。 在Android中,Alertdialog是用于显示一个小型警告对话框的组件,它包含一...

    solidworks2016-iphone12模型-苹果12

    对于iPhone 12,这可能包括矩形、圆角、倒角、孔等基本特征。2016版的SolidWorks引入了更流畅的工作流程和增强的工具,使得复杂模型的创建更为高效。 开始建模之前,确保你已正确安装并启动SolidWorks 2016。打开...

    黑莓8310 iphone主题

    例如,用户可能看到iOS风格的主屏幕,带有圆角矩形的应用图标,以及滑动解锁的交互方式。 文件名称列表中的"iPhone-Zen-83,88"可能表示这个主题包的名称是"iPhone Zen",并且它适用于黑莓83系列和88系列的部分设备...

    iOS Core Graphics Demo

    本Demo介绍了在iOS中用Core Graphics函数画直线、画孤线、画圆形、画扇形、画椭圆、画三角形、画长方形、画圆角矩形、画贝兹尔曲线、画渐变色、画图片的基本操作。很适合初学者参考借鉴。开发环境:在Mac OS 10.12里...

    仿iPhone风格对话框示例,Jar包及源码.zip

    1. **圆角矩形**:iPhone风格的对话框通常采用圆角矩形设计,这与Android原生的方形对话框有所区别,增加了视觉上的柔和感。 2. **阴影效果**:在iPhone的对话框中,会添加一定的阴影效果,使其在屏幕背景上显得...

    仿iPhone 界面 界面美化

    主要特点包括圆角矩形的按钮、半透明效果、滑动操作以及富有层次感的布局。要在wince或winmobile平台上模仿这些特性,我们可以采用以下几种方法: 1. **图形设计**:创建具有iPhone风格的图标、按钮和其他UI元素。...

    android中方iphone对话框

    这可能包括圆角矩形背景、标题、消息文本和自定义按钮。例如,可以使用`CardView`组件来实现圆角效果,并通过设置背景颜色和alpha值来模拟半透明效果。 2. **自定义样式**:Android的`AlertDialog`或者`...

    仿 IOS 截屏动画炫酷流畅

    在这里,开发者可能会创建一个与iOS风格相似的界面,包括但不限于圆角矩形的截图区域、底部的阴影效果、以及可能的按钮等元素。通过设置布局属性,如`android:background`、`android:elevation`、`android:radius`等...

    Android精美弹窗仿IPhone样式

    1. 圆角矩形:Android的弹窗默认为方形,我们可以自定义背景,使用CardView或自定义Shape来实现圆角效果。 2. 淡入淡出动画:添加进入和退出动画,模拟iPhone弹窗的过渡效果,可以使用Animation类或者Transition API...

    Windows mobile界面设计(仿IPhone)

    这包括但不限于:圆角矩形按钮、半透明效果、滑动切换、图标设计以及触摸友好的布局。开发者需要特别关注以下几个方面: 1. **布局设计**:iPhone的界面通常采用网格系统,保持一致性,同时注重内容的清晰展示。...

Global site tag (gtag.js) - Google Analytics