Android圈子位图中心标签没有正确居中

时间:2015-09-17 10:36:57

标签: android bitmap

我有一个方形位图(200 * 200)。此位图具有背景颜色(黄色)和中心的字母(想象为A)。 从该位图我想创建一个带黑色边框的圆角位图。这个边框是4个像素,所以我假装的最终图像是一个220 * 220的位图,其圆心半径为100,边界为4.如果我看这个位图,我会看到一个圆形的圆圈中央有黑色边框,两侧有一些透明像素(16)。

我这样做:

- (void) viewDidLoad {
    [self.textView addObserver:self forKeyPath:@"contentSize" options:(NSKeyValueObservingOptionNew) context:NULL];
    [super viewDidLoad];
}

- (void)observeValueForKeyPath:(NSString *)iKeyPath ofObject:(id)iObject change:(NSDictionary *)iChange context:(void *)iContext {
    UITextView *myTextView = (UITextView *)iObject;
    CGFloat topCorrect = (myTextView.bounds.size.height - [myTextView contentSize].height * [myTextView zoomScale]) / 2.0;
    topCorrect = (topCorrect < 0.0 ? 0.0 : topCorrect);
    myTextView.contentOffset = (CGPoint){.x = 0, .y = -topCorrect};
}

图像是这样创建的:

enter image description here

如何将字母A居中?

在左边我得到了原始图像(位图),在左边(roundBitmap)我希望我想要除了标签居中之外:

enter image description here

2 个答案:

答案 0 :(得分:1)

Chris Banes写了一篇关于这个问题的帖子。 Measuring Text

答案 1 :(得分:1)

由于您的图片尺寸始终相同,因此您应修改以下代码

scaleWidth = (((float) destWidth)+20) / width; float scaleHeight = (((float) destHeight)+20) / height;