如果我使用不属于Android 2.3.3 API的视图类(如setLayerType)的API,如何让我的Android应用与以前的Android版本兼容?我可以用这个方法代替什么?
答案 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描述的反射