次のコードでは:
Paint tPaint = new Paint(aPaint);
tPaint.setTypeface(typeFace);
aPaint = new Paint(tPaint);
typeFaceはtPaintに設定されていることが確認されていますが、typeFaceはaPaintにコピーされません。
これは正確には答えではありませんが、回避策です。
次のものを置き換えました:aPaint = new Paint(tPaint); with:aPaint = newPaint(tPaint); メソッドを作成しました:
public Paint newPaint(Paint fromPaint){
Typeface tf = fromPaint.getTypeface();
Paint rPaint = new Paint(fromPaint);
rPaint.setTypeface(tf);
return rPaint;
}
これは機能します。
わかりました、それは私のコードがどのように見えるかです。あなたが何かを見つけることができるかどうかを確認してください。
MainView.java
public class MainView extends View {
Context context;
public MainView(Context context) {
super(context);
this.context = context;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint apaint = new Paint();
apaint.setTextSize(100);
apaint.setTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/sketchblock.ttf"));
canvas.drawText("Dusean", canvas.getWidth()/2, canvas.getHeight()/2, apaint);
Paint tpaint = new Paint(apaint);
canvas.drawText("Dusean", canvas.getWidth()/3, canvas.getHeight()/3, tpaint);
}
}
MainActivity.java
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MainView(this));
}
}
とAssetsフォルダのフォントassets/fonts / font.ttf