如何通过RemoteViews以dp为单位设置TextView的setTextSize
实现通过RemoteViews调用双参数的setTextSize方法
完全可行,你可以借助RemoteViews的setMethod()方法来调用TextView带两个参数的setTextSize(int unit, float size)方法,代码示例如下:
import android.util.TypedValue; // 以DIP为单位设置文本字号 views.setMethod( R.id.appwidget_text, "setTextSize", new Class[]{int.class, float.class}, new Object[]{TypedValue.COMPLEX_UNIT_DIP, fontSize} );
补充说明
- 该方法要求API级别11及以上,若需兼容更低版本,可先做版本判断:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { // 上述setMethod调用代码 } else { // 低版本下只能使用单参数setFloat,或通过缩放字号模拟DIP单位效果 } - 必须保证传入的参数类型与方法签名完全匹配:第一个参数为
int类型的单位常量,第二个为float类型的字号值,类型错误会导致方法调用失败。
内容的提问来源于stack exchange,提问作者ellr
相关产品推荐
相关产品推荐

