Paint.Align originalTextAlign = paint.getTextAlign(); paint.setTextAlign(Paint.Align.LEFT);
public S hasTextAlign(Paint.Align align) { isNotNull(); Paint.Align actualAlign = actual.getTextAlign(); assertThat(actualAlign) // .overridingErrorMessage("Expected text align <%s> but was <%s>.", align, actualAlign) // .isEqualTo(align); return myself; }
@Test public void shouldGetAndSetTextAlignment() throws Exception { Paint paint = Shadow.newInstanceOf(Paint.class); assertThat(paint.getTextAlign()).isEqualTo(Paint.Align.LEFT); paint.setTextAlign(Paint.Align.CENTER); assertThat(paint.getTextAlign()).isEqualTo(Paint.Align.CENTER); }
private Text(Canvas canvas, String content, float x, float y, @NonNull Paint paint) { this.canvas = canvas; this.content = content; this.x = x; this.y = y; this.paint = paint; oldAlign = paint.getTextAlign(); }
public static void drawCenterText(String text, RectF rectF, Canvas canvas, Paint paint) { Paint.Align align = paint.getTextAlign(); float x; float y; //x if (align == Paint.Align.LEFT) { x = rectF.centerX() - paint.measureText(text) / 2; } else if (align == Paint.Align.CENTER) { x = rectF.centerX(); } else { x = rectF.centerX() + paint.measureText(text) / 2; } //y metrics = paint.getFontMetrics(); float acent = Math.abs(metrics.ascent); float descent = Math.abs(metrics.descent); y = rectF.centerY() + (acent - descent) / 2f; canvas.drawText(text, x, y, paint); Log.e("ghui", "top:" + metrics.top + ",ascent:" + metrics.ascent + ",dscent:" + metrics.descent + ",leading:" + metrics.leading + ",bottom" + metrics.bottom); }
public S hasTextAlign(Paint.Align align) { isNotNull(); Paint.Align actualAlign = actual.getTextAlign(); assertThat(actualAlign) // .overridingErrorMessage("Expected text align <%s> but was <%s>.", align, actualAlign) // .isEqualTo(align); return myself; }
/** * Configure {@link Paint} text alignment from xml attrs. * @param attrs * @param paint * @param alignAttr */ public static void configureTextAlign(TypedArray attrs, Paint paint, int alignAttr) { if (attrs != null) { //if(attrs.hasValue(alignAttr)) { final Paint.Align alignment = Paint.Align.values() [attrs.getInt(alignAttr, paint.getTextAlign().ordinal())]; paint.setTextAlign(alignment); //} } }
Paint.Align originalTextAlign = paint.getTextAlign(); paint.setTextAlign(Paint.Align.LEFT);
Paint.Align originalTextAlign = paint.getTextAlign(); paint.setTextAlign(Paint.Align.LEFT);
Paint.Align originalTextAlign = paint.getTextAlign(); paint.setTextAlign(Paint.Align.LEFT);
Paint.Align originalTextAlign = paint.getTextAlign(); paint.setTextAlign(Paint.Align.LEFT);
switch (paint.getTextAlign()) { case LEFT: rect.offset(x, baseLineY);
Paint.Align originalTextAlign = paint.getTextAlign(); paint.setTextAlign(Paint.Align.LEFT);
Paint.Align originalFontAlign = textPaint.getTextAlign(); int originalColor = paint.getColor(); Paint.Style originalStyle = paint.getStyle();
/** * Done at the end of rendering a new cell. Whatever is drawn here will be on top of * the rest of the cell content; typically used to draw borders and text. * @param canvas * @param cellRect * @param iconRect * @param legendItem */ protected void finishDrawingCell(Canvas canvas, RectF cellRect, RectF iconRect, LegendItem legendItem) { if(drawIconBorderEnabled && iconBorderPaint != null) { canvas.drawRect(iconRect, iconBorderPaint); } float centeredTextOriginY = getRectCenterY(cellRect) + (FontUtils.getFontHeight(textPaint)/2); if (textPaint.getTextAlign().equals(Paint.Align.RIGHT)) { canvas.drawText(legendItem.getTitle(), iconRect.left - 2, centeredTextOriginY, textPaint); } else { canvas.drawText(legendItem.getTitle(), iconRect.right + 2, centeredTextOriginY, textPaint); } }
/** * Get the horizontal offset where start to draw the text considering the current * painter alignment. * @param text the source text * @return the start position */ private float getHorizontalOffset(String text) { // Calculate the start position considering the painter text align switch (this.getPainter().getTextAlign()) { case CENTER: return -this.getTextWidth(text) / 2.0f; case RIGHT: return -this.getTextWidth(text); } return 0.0f; }
private float getDx(final int width, final int horizontalGravity, final Paint paint, final StaticLayout layout) { final boolean centered = paint.getTextAlign() == Paint.Align.CENTER; final float dx; switch (horizontalGravity) { // No support for GravityCompat.END case Gravity.CENTER_HORIZONTAL: dx = (width >> 1) - (centered ? 0 : (layout.getWidth() >> 1) - getPaddingLeft()); break; default: case GravityCompat.START: dx = getPaddingLeft(); break; } return dx; }
Rect bounds = new Rect(); paint.getTextBounds(content, 0, content.length(), bounds); switch (paint.getTextAlign()) { case LEFT: bounds.offset(getWidth() / 2, baseLineY);
/** * Apply the attributes to the text writer feature. * @param attrArray the attributes array * @param feature the feature * @param prefix the attribute prefix */ private void applyAttributesToWriter(TypedArray attrArray, ScWriter feature, String prefix) { // Apply the default attributes this.applyDefaultAttribute(attrArray, feature, prefix); // Get tokens String stringTokens = attrArray .getString(this.getAttributeId(prefix, "Tokens")); String[] tokens = stringTokens != null ? stringTokens.split("\\|") : feature.getTokens(); // Get the text alignment Paint.Align align = feature.getPainter().getTextAlign(); Paint.Align textAlign = Paint.Align.values()[ attrArray.getInt( this.getAttributeId(prefix, "Align"), align.ordinal()) ]; // Bending boolean bending = attrArray.getBoolean( this.getAttributeId(prefix, "Bending"), feature.getBending()); // Assign feature.setTokens(tokens); feature.getPainter().setTextAlign(textAlign); feature.setBending(bending); }
data.put("StrokeWidth", paint.getStrokeWidth()); data.put("Style", paint.getStyle().name()); data.put("TextAlign", paint.getTextAlign().name()); data.put("TextScaleX", paint.getTextScaleX()); data.put("TextSize", paint.getTextSize());