這不關於AntiAlias,請在回答謝謝之前閱讀問題。canvas.drawText與畫布上的像素完美文字
ADDING賞金 - >android convert text width (in pixels) to percent of screen width/height
質量信息 - >https://stackoverflow.com/a/1016941/1815624
試圖繪製在畫布上的文字時,我得到不一致的結果。請幫忙,謝謝。
我希望文字消耗比例相同的空間量上
我不關心ANTI_ALIAS並增加了paint.setFlags(Paint.ANTI_ALIAS_FLAG);
但問題是相同的所有設備......
在1個屏幕文本消耗寬度的一半,在另一個只佔1/3,甚至使用全寬。
我希望他們都使用等量的屏幕房地產。
對於實施例
這些已經使用指南:http://www.gkproggy.com/2013/01/draw-text-on-canvas-with-font-size.html
要徹底在這裏創造的源泉:
public class MainActivity extends Activity
{
Paint paint;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
paint = new Paint();
View test = new TestView(this);
setContentView(test);
}
public class TestView extends View
{
public TestView(Context context)
{
super(context);
setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
}
public float pixelsToSp(Context context, float px) {
float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity;
return px/scaledDensity;
}
public float spToPixels(float sp) {
Context context = getContext();
float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity;
return scaledDensity*sp;
}
@Override
protected void onDraw(Canvas canvas)
{
int size = getResources().getDimensionPixelSize(R.dimen.sp20);
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 20, getResources().getDisplayMetrics());
Log.v("intSize", Integer.toString(size));
Log.v("intSize", Integer.toString(px));
Log.v("intSize", Float.toString(spToPixels(20f)));
if(true) {
Typeface myTypeface = Typeface.createFromAsset(getContext().getAssets(), "fonts/Ultra.ttf");
paint.setTypeface(myTypeface);
}
paint.setColor(Color.BLACK);
paint.setTextSize(size);
paint.setFlags(Paint.ANTI_ALIAS_FLAG);
canvas.drawText("HELLOOOOOOOOOOOOOO!", 0, size, paint);
super.onDraw(canvas);
}
}
}
我已嘗試暗示 https://stackoverflow.com/a/5369766/1815624
展望本
https://stackoverflow.com/a/21895626/1815624
https://stackoverflow.com/a/14753968/1815624
https://stackoverflow.com/a/21895626/1815624 < - 用現在正試圖
我真的不知道你在問什麼,但要獲得「平滑」邊緣可以在繪畫對象上設置消除鋸齒爲真 –
我希望文本在所有設備上消耗相同數量的縮放空間 – CrandellWS
它確實看起來像t嘿。你是否希望它們跨越屏幕寬度/高度的相同*百分比*,或者如果用尺子測量它們,它們的尺寸是相同的? –