关于简单自定义View自适应的办法

  最近要实现自定义的view,记录下几点问题:

  1.onDraw方法中,最后自定义的view只会显示你实际使用的canvas的大小,这样画出来的图形边界会有被切割的感觉,所以我选择 用透明的paint在外围重新画一个大一点的图。(这个问题还有待解决,主要是onMesure还在看)

  2.对于出现的图形,在720*1080的手机上显示正常,当时到了1080*2000分辨率出现问题,显得很小,原因是这个canvas的绘图是建立在px(像素上面),所以我们为了更好的适应不同分辨率的机型,我们需要获取屏幕的宽度,然后设定一个基本的数值,根据屏幕的大小,进行比例的变换。比如说:我要在720的手机上画360px的直线,就是要占屏幕的一般,如果到了1080的屏幕那这就只能占1/3了,所以简单的做法,我们可以给他乘以1080/720(1.5)即可,换做小屏幕的手机,结果也是一样。


顺便记录下 关于bitmap的相关方法。

加载bitmap的方式多种多样,其中比较常用的就是通过bitmapfactory.decode······方法,这个方法可以将数据流和路径中的文件输出为图片。这种方法有些问题,那就是很占内存,具体的解决办法 还没有细看 (貌似是分片的意思)

还有creatbitmap的方法创建,但是我觉得,这个方法用来伸缩图片和裁剪更适宜。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QGraphicsView是Qt Framework中的图形视图类,用于在应用程序中显示和编辑2D图形。自适应是指QGraphicsView能够根据场景中的图形对象的大小和位置来动态调整视图的尺寸和视口的显示范围。 QGraphicsView自适应功能可以通过以下几种方式实现: 1. 调整视图大小:可以使用resize()函数或setGeometry()函数来调整QGraphicsView的大小。当场景中的图形对象的大小变化时,可以通过信号槽机制来捕捉到这些变化,并相应地调整视图的大小,以确保所有的图形对象都能在视图中完全显示。 2. 调整视口显示范围:可以使用fitInView()函数来调整视口的显示范围,使得场景中的图形对象完全可见。可以选择不同的缩放模式(保持纵横比例,保持宽度或高度等),以及调整视口的边界值,以满足特定的需求。 3. 自动缩放:可以使用setRenderHint()函数来设置渲染提示,例如QGraphicsView::Antialiasing和QGraphicsView::SmoothPixmapTransform等,以实现图形的平滑显示和自动缩放效果。通过设置这些渲染提示,可以让QGraphicsView在显示图形对象时自动进行大小调整和缩放操作,以适应视图的尺寸和显示设备的分辨率。 总之,QGraphicsView自适应功能使得应用程序能够灵活地根据场景中的图形对象的大小和位置来动态调整视图的大小和显示范围。通过合理地设置视图的属性和使用QGraphicsView提供的函数,可以实现QGraphicsView自适应效果,以满足不同应用场景中的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值