Android -- Canvas java.lang.UnsupportedOperationException

干货

java.lang.UnsupportedOperationException
     at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:287)
     at br.com.iba.view.PageCurlView.drawCurl(PageCurlView.java:284)
     at br.com.iba.view.PageCurlView.onDraw(PageCurlView.java:353)
     at android.view.View.draw(View.java:9291)

在用canvas的clipPath方法画图像之后,在Nexus5上跑着没问题,但是换到红米手机上就不行了,显示不出效果来,之后换了一台华为的手机来试,直接崩溃,这样也好,总比不崩溃但是显示不出效果来要好一些,之后在StackOverFlow上搜索,找到了解决方案。

原因是因为不支持硬件加速。

解决

mImageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

我是天王盖地虎的分割线

参考:http://stackoverflow.com/questions/7401319/use-hardwareacceleration-flag-with-canvas-clippath

其他精彩文章

android学习笔记(41)android选项菜单和子菜单(SubMenu )

android学习笔记(40)Notification的功能与用法

android学习笔记(42)android使用监听器来监听菜单事件

android学习笔记(43)android创建单选菜单和复选菜单

 jQuery教程(12)-ajax操作之基于请求加载数据

 jQuery教程(13)-ajax操作之追加 HTML

更多关于android开发文章


根据错误信息,'drawLabel(android.graphics.Canvas, java.lang.String, float, float, com.github.mikephil.charting.utils.MPPointF, float)' 方法在 'com.github.mikephil.charting.renderer.XAxisRenderer' 中不能被应用于 '(android.graphics.Canvas, java.lang.String, float, float, com.github.mikephil.charting.components.AxisBase)'。这意味着你正在调用 XAxisRenderer 的 `drawLabel()` 方法时传递了错误的参数类型。 为了解决这个问题,你可以尝试使用另一个重载的 `drawLabel()` 方法,该方法只接受 `Canvas`、`String`、`float` 和 `MPPointF` 参数。下面是一个示例代码: ```java import com.github.mikephil.charting.components.AxisBase; import com.github.mikephil.charting.components.XAxis; import com.github.mikephil.charting.renderer.XAxisRenderer; import com.github.mikephil.charting.utils.MPPointF; import com.github.mikephil.charting.utils.Transformer; import com.github.mikephil.charting.utils.ViewPortHandler; public class CustomXAxisRenderer extends XAxisRenderer { // 自定义代码... @Override protected void drawLabel(Canvas c, String formattedLabel, float x, float y, MPPointF anchor, float angleDegrees) { // 自定义绘制标签的逻辑... } } ``` 然后,你需要将 `AxisLabelRender` 的实例设置为自定义的 `CustomXAxisRenderer`,并将其传递给你的 `XAxis` 对象: ```java LineChart lineChart = findViewById(R.id.lineChart); XAxis xAxis = lineChart.getXAxis(); CustomXAxisRenderer customXAxisRenderer = new CustomXAxisRenderer(lineChart.getViewPortHandler(), xAxis, lineChart.getTransformer(YAxis.AxisDependency.LEFT)); xAxis.setRenderer(customXAxisRenderer); // 设置其他的 LineChart 配置和数据 ``` 通过使用正确的参数类型和重载的方法,你应该能够解决这个问题。如果你还有其他问题,请随时追问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值