Skip to content

Instantly share code, notes, and snippets.

@abbas-oveissi
Created September 14, 2017 11:05
Show Gist options
  • Save abbas-oveissi/05a6cfcdfd5b465285712978c573dfa4 to your computer and use it in GitHub Desktop.
Save abbas-oveissi/05a6cfcdfd5b465285712978c573dfa4 to your computer and use it in GitHub Desktop.
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.support.annotation.Nullable;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;
/**
* Created by abbas on 9/13/17.
*/
public class UiChallenge extends AppCompatImageView {
private Bitmap mBitmap;
private Canvas bitmapCanvas;
Paint rectPaint,textPaint,transparentLinePaint,transparentVirgoolPaint,p;
private int height;
private int width;
public UiChallenge(Context context) {
super(context);
init();
}
public UiChallenge(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init();
}
public UiChallenge(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
public void init()
{
p = new Paint();
rectPaint = new Paint();
rectPaint.setColor(Color.parseColor("#51ceca"));
transparentVirgoolPaint = new Paint();
transparentVirgoolPaint.setColor(getResources().getColor(android.R.color.transparent));
transparentVirgoolPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
transparentVirgoolPaint.setTypeface(FontHelper.get(getContext(),"iran_b.ttf"));
transparentVirgoolPaint.setTextSize(dpToPx(70));
transparentVirgoolPaint.setAntiAlias(true);
transparentLinePaint = new Paint();
transparentLinePaint.setColor(getResources().getColor(android.R.color.transparent));
transparentLinePaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
transparentLinePaint.setStrokeWidth(dpToPx(30));
transparentLinePaint.setAntiAlias(true);
textPaint = new Paint();
textPaint.setColor(Color.parseColor("#FFFFFF"));
textPaint.setTypeface(FontHelper.get(getContext(),"iran.ttf"));
textPaint.setTextSize(dpToPx(27));
textPaint.setAntiAlias(true);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
height=MeasureSpec.getSize(heightMeasureSpec);
width=MeasureSpec.getSize(widthMeasureSpec);
mBitmap = Bitmap.createBitmap(dpToPx(width),dpToPx(height),Bitmap.Config.ARGB_8888);
bitmapCanvas = new Canvas(mBitmap);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
@Override
protected void onDraw(Canvas canvas) {
bitmapCanvas.drawRect(0, 0, width, dpToPx(50), rectPaint);
bitmapCanvas.drawText("،",width-dpToPx(30),dpToPx(18), transparentVirgoolPaint);
bitmapCanvas.drawText("،",width-dpToPx(50),dpToPx(18), transparentVirgoolPaint);
bitmapCanvas.drawText("زندگینامه",dpToPx(19),dpToPx(30), textPaint);
bitmapCanvas.drawLine(dpToPx(18),-1*dpToPx(5),dpToPx(0),dpToPx(50),transparentLinePaint);
canvas.drawBitmap(mBitmap, 0, 0, p);
}
public static int dpToPx(int dp) {
return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
}
}
@hamid97m
Copy link

niceeeeee

@amin1softco
Copy link

با خود لایوت اندروید و
xml
امکان پیاده سازیش نبود ؟

@abbas-oveissi
Copy link
Author

@amin1softco
چطوری منظورتون هست؟ با ناین پچ؟

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment