java - 为什么位图大小在不同的屏幕上会发生变化?
问题描述
我使用这种方法将文本转换为位图:
private Bitmap textToBitmap(String text)
{
Bitmap myBitmap = Bitmap.createBitmap(400, 50, Bitmap.Config.ARGB_4444);
Canvas myCanvas = new Canvas(myBitmap);
Paint paint = new Paint();
Typeface clock = Typeface.createFromAsset(context.getAssets(),"fonts/myfont.ttf");
paint.setAntiAlias(true);
paint.setSubpixelText(true);
paint.setTypeface(clock);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE );
paint.setTextSize(38);
paint.setTextAlign(Paint.Align.RIGHT);
myCanvas.drawText(text, 400, 30, paint);
return myBitmap;
}
但是在某些手机中,我的位图非常小,而在其他手机中,它非常大,为什么会发生这种情况?
解决方案
Bitmap myBitmap = Bitmap.createBitmap(400, 50, Bitmap.Config.ARGB_4444);//its unit is px, practical size of 1 px is different in various device.
您应该根据设备scaledDensity调整位图的大小,这是一个很好的解决方案
推荐阅读
- javascript - 无法以正确的方式附加孩子
- zend-framework - 如何在 .phtml 视图中将外部 php 文件包含在 zend 应用程序文件夹之外
- excel - 如何生成一个随机范围的数字,这些数字总和为结束参数
- python - 计算多指标数据框中的比率(年初值/上年结束值)
- c++ - 使用指定的路径更改目录(路径包括文件名作为字符串)
- javascript - 在 Internet Explorer VBA 中单击 ID 不会注册任何内容?
- javascript - 避免为每个子元素编写事件
- c# - SaveChanges 上的意外 ForeignKey 更改
- javascript - 如何通过代理从代码中更新对象的属性来更新输入的值?
- react-native - React Native - 进行访问令牌验证的常用地方