Seb*_*hec 6 java android drawable android-view android-viewpager
问题与疑问:
我目前有一个视图寻呼机,里面只有2页/视图,它们水平相邻.
我的观点是自定义的,它以低不透明度/ alpha值绘制双色渐变和顶部的图像.
我发现当我在屏幕上滑动以从第一个视图/页面移动到第二个视图/页面或反之亦然时,图像会被压扁.我怎样才能阻止这种情况发生,并正常绘制它们?
例:
在左图像显示,是可见的,所述第一视图预滑动 ; 在右边的图像显示了两种观点,中途刷卡.

码:
我有一个Drawable我之前设置的变量,overlayImage除了设置不透明度之外,我没有做任何其他事情.
@Override
protected void onDraw(Canvas canvas) {
p.setShader(new LinearGradient(0, 0, 0, getHeight(), startColor, endColor, Shader.TileMode.MIRROR));
canvas.drawPaint(p);
//Pretty sure the mistake is around these two next lines
overlayImage.setBounds(canvas.getClipBounds());
overlayImage.draw(canvas);
}
Run Code Online (Sandbox Code Playgroud)
我实际上认为它在你的
overlayImage.setBounds(canvas.getClipBounds());
Run Code Online (Sandbox Code Playgroud)
行代码。当您获取最左边(在最右边滑动)视图的剪辑边界时,它正在获取可视区域的大小(即较小的收缩区域),因此图像被绘制到该收缩空间中。
您可能希望通过覆盖的视图的整体大小来设置边界,而不是剪切的边界。使用画布的 getHeight() 和 getWidth() 并建立您自己的边界。
实际上,我认为您确实应该在设置代码中仅设置overlayImage 边界一次。绘制代码根本不需要进行设置,那么当视图开始离开屏幕时,overlayImage 的绘制将自然地与绘图画布的其余部分一起移动。
| 归档时间: |
|
| 查看次数: |
210 次 |
| 最近记录: |