【问题标题】:Android Snackbar textsize too bigAndroid Snackbar textsize 太大
【发布时间】:2016-02-17 02:34:27
【问题描述】:

我正在尝试更改 Snackbar 的文本大小,因为我希望它对于弱视用户来说易于阅读。我写这个方法来创建Snackbar

private Snackbar getSnackbar(int msgId) {
    final Snackbar snackbar = Snackbar.make(
            mView,
            msgId,
            Snackbar.LENGTH_LONG);
    final View view = snackbar.getView();
    final TextView tv = (TextView) view.findViewById(android.support.design.R.id.snackbar_text);
    tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, getResources().getDimension(R.dimen.snackbar_textsize));
    return snackbar;
}

而对应的dimens.xml是:

<resources>
    <dimen name="header_date_font_size">16sp</dimen>
    <dimen name="snackbar_textsize">16sp</dimen>
</resources>

这是生成的 Snackbar 的屏幕截图。

为什么文字这么大?我原以为它会是通常的 16sp 大小,因为它在我的应用程序中无处不在。

【问题讨论】:

    标签: android android-snackbar


    【解决方案1】:

    getDimension() 返回已应用其维度缩放因子的资源的值。

    所以如果在sp中指定了资源,那么返回值就是实际大小的像素数。

    但是您将该值输入setText() 并说测量值在sp 中,而实际上它以像素为单位。所以它应用了另一个缩放因子。

    相反,只需说:

    tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.snackbar_textsize));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-08
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 2015-08-22
      相关资源
      最近更新 更多