setLayerType替代Android 2.3.3?

时间:2013-06-07 18:22:45

标签: android android-layout android-view

如果我使用不属于Android 2.3.3 API的视图类(如setLayerType)的API,如何让我的Android应用与以前的Android版本兼容?我可以用这个方法代替什么?

2 个答案:

答案 0 :(得分:5)

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
     // only for gingerbread and newer versions
//        setLayerType
}

或通过反思

try {
    Method setLayerTypeMethod = mWebView.getClass().getMethod("setLayerType", new Class[] {int.class, Paint.class});
    if (setLayerTypeMethod != null)
         setLayerTypeMethod.invoke(yourView, new Object[] {LAYER_TYPE_SOFTWARE, null});
} catch (NoSuchMethodException e) {
   e.printStackTrace();   
} catch (IllegalArgumentException e) {
    e.printStackTrace();
} catch (IllegalAccessException e) {
    e.printStackTrace();
} catch (InvocationTargetException e) {
    e.printStackTrace();
}

答案 1 :(得分:0)

禁用硬件加速你可以使用android:hardwareAccelerated =“false”

此处提供更多详细信息:http://developer.android.com/guide/topics/graphics/hardware-accel.html#controlling

但要注意android:hardwareAccelerated =“false”,因为你会用app性能支付费用

我认为最好的协议是使用blackbelt描述的反射