@Override public void draw(Canvas canvas) { final Drawable background = mBackground; if (background != null) { final int scrollX = mScrollX; final int scrollY = mScrollY; if (mBackgroundSizeChanged) { background.setBounds(0, 0, mRight - mLeft, mBottom - mTop); mBackgroundSizeChanged = false; } if ((scrollX | scrollY) == 0) { background.draw(canvas); } else { canvas.translate(scrollX, scrollY); background.draw(canvas); canvas.translate(-scrollX, -scrollY); } } // We enhance the shadow by drawing the shadow twice getPaint().setShadowLayer(SHADOW_LARGE_RADIUS, 0.0f, SHADOW_Y_OFFSET, SHADOW_LARGE_COLOUR); super.draw(canvas); canvas.save(Canvas.CLIP_SAVE_FLAG); canvas.clipRect( mScrollX, mScrollY + getExtendedPaddingTop(), mScrollX + getWidth(), mScrollY + getHeight(), Region.Op.INTERSECT); getPaint().setShadowLayer(SHADOW_SMALL_RADIUS, 0.0f, 0.0f, SHADOW_SMALL_COLOUR); super.draw(canvas); canvas.restore(); }
private void drawLocalityLabel(Canvas canvas) { TextView textView = new TextView(getContext()); int width = this.width; int height = (int) (60); textView.layout(0, 0, width, height); switch (currentLocationID) { case 0: textView.setText("Current Locality: Room 340"); break; case 1: textView.setText("Current Locality: Room 343"); break; case 2: textView.setText("Current Locality: Room 344"); break; case 3: textView.setText("Current Locality: Hallway"); break; } textView.setBackgroundColor(Color.parseColor(borderColor)); textView.setTextColor(Color.WHITE); textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22); // textView.setTextAlignment(TEXT_ALIGNMENT_CENTER); textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); Bitmap bitmapText = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas canvasText = new Canvas(bitmapText); textView.draw(canvasText); canvas.drawBitmap(bitmapText, 0, this.height - 160, null); }
@Override public void draw(Canvas canvas) { if (!mCustomShadowsEnabled) { super.draw(canvas); return; } final Drawable background = mBackground; if (background != null) { final int scrollX = getScrollX(); final int scrollY = getScrollY(); if (mBackgroundSizeChanged) { background.setBounds(0, 0, getRight() - getLeft(), getBottom() - getTop()); mBackgroundSizeChanged = false; } if ((scrollX | scrollY) == 0) { background.draw(canvas); } else { canvas.translate(scrollX, scrollY); background.draw(canvas); canvas.translate(-scrollX, -scrollY); } } // If text is transparent, don't draw any shadow if (getCurrentTextColor() == getResources().getColor(android.R.color.transparent)) { getPaint().clearShadowLayer(); super.draw(canvas); return; } // We enhance the shadow by drawing the shadow twice getPaint().setShadowLayer(SHADOW_LARGE_RADIUS, 0.0f, SHADOW_Y_OFFSET, SHADOW_LARGE_COLOUR); super.draw(canvas); canvas.save(Canvas.CLIP_SAVE_FLAG); canvas.clipRect( getScrollX(), getScrollY() + getExtendedPaddingTop(), getScrollX() + getWidth(), getScrollY() + getHeight(), Region.Op.INTERSECT); getPaint().setShadowLayer(SHADOW_SMALL_RADIUS, 0.0f, 0.0f, SHADOW_SMALL_COLOUR); super.draw(canvas); canvas.restore(); }
@Override public void draw(Canvas canvas) { // TODO Auto-generated method stub canvas.setDrawFilter(pfd); canvas.drawCircle( getWidth() / 2, getHeight() / 2, Math.max(getWidth(), getHeight()) / 2, mBgPaint); super.draw(canvas); }
@Override public void draw(Canvas canvas) { if (topDown) { canvas.translate(getHeight(), 0); canvas.rotate(90); } else { canvas.translate(0, getWidth()); canvas.rotate(-90); } canvas.clipRect(0, 0, getWidth(), getHeight(), android.graphics.Region.Op.REPLACE); super.draw(canvas); }
@Override protected void onDraw(Canvas c, OpenStreetMapView osmv) { if (this.mLocation != null) { mT.setText(mDescr); mT.measure(0, 0); mT.layout(0, 0, mT.getMeasuredWidth(), mT.getMeasuredHeight()); final OpenStreetMapViewProjection pj = osmv.getProjection(); final Point screenCoords = new Point(); pj.toPixels(this.mLocation, screenCoords); c.save(); c.rotate(osmv.getBearing(), screenCoords.x, screenCoords.y); c.translate(screenCoords.x - 12, screenCoords.y - mT.getMeasuredHeight() + 2); mT.draw(c); c.restore(); } }
@Override public void draw(Canvas canvas) { Layout layout = getLayout(); RectF rectf = mrectf; int left = getCompoundPaddingLeft(); int top = getExtendedPaddingTop(); rectf.set( left + layout.getLineLeft(0) - mPaddingH, top + layout.getLineTop(0) - mPaddingV, Math.min( left + layout.getLineRight(0), getScrollX() + getWidth() - getCompoundPaddingRight()), top + layout.getLineBottom(0) + mPaddingV); canvas.drawRoundRect(rectf, mCornerRadius, mCornerRadius, mpaint); super.draw(canvas); }