我在缩放GIF电影框架时遇到问题。我在绘制框架之前使用了Canvas.scale(float sx,float sy)。但它没有绘制缩放的框架,它没有画任何东西。任何ides?无法在Android Canvas中缩放gif移动框架
1
A
回答
1
这应该工作。
protected void onDraw(Canvas canvas)
{
canvas.drawColor(Color.TRANSPARENT);
canvas.scale(0.5f, 0.5f); // scale gif to its half size
super.onDraw(canvas);
/* movie.setTime . . . */
movie.draw(canvas, ...);
this.invalidate();
}
2
如果你想做一个专门的观点是规模,能和可重用的另一个布局中,你应该使用视图的的getWidth()和getHeight()方法为好。 canvas.getWidth()在整个屏幕的宽度,而不是意见宽度,使我修改的onDraw方法如下:
我当改变视图的专用尺寸就遇到了这个问题。
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.TRANSPARENT);
super.onDraw(canvas);
long now = android.os.SystemClock.uptimeMillis();
Paint p = new Paint();
p.setAntiAlias(true);
if (cur == 0) cur = now;
if(movie != null)
{
float scale = 1f;
if(movie.height() > getHeight() || movie.width() > getWidth())
scale = (1f/Math.min(canvas.getHeight()/movie.height(), canvas.getWidth()/movie.width())) + 0.25f;
else
scale = Math.min(canvas.getHeight()/movie.height(), canvas.getWidth()/movie.width());
canvas.scale(scale, scale);
canvas.translate(((float)getWidth()/scale - (float)movie.width())/2f,
((float)getHeight()/scale - (float)movie.height())/2f);
int relTime = (int)((now - cur) % movie.duration());
movie.setTime(relTime);
movie.draw(canvas, 0, 0);
invalidate();
}
}
通知之的getWidth()的getHeight()if语句检查,看看电影是超过视图大小,在我的情况,我的看法高度为160,但我的GIF为260,但使用另一种方法是总是会画出GIF太大的图像,在这两种情况下,我都能够测试并看到它的工作情况,在这两种情况下,我的视图是1280 X 900,图像放大了,我的视图也是1000 X 160,并缩小了比例。
最好的运气,和有乐趣:d
克里斯
相关问题
- 1. 框架无法移动在actionscript3.0
- 2. 在框架布局中的Android拖动和缩放
- 3. UIScrollView无法在缩放后平移
- 4. HTML5 Canvas缩放/缩放更大2D世界的视图框?
- 5. 在移动浏览器中无法缩放的背景图片
- 6. Linux - 使用平移和缩放功能创建动画gif
- 7. 为iOS设置移动和缩放框
- 8. HTML5 Canvas缩放图像动画
- 9. bxslider缩放移动
- 10. 防止MFMailComposeViewController缩放动画GIF
- 11. 无法移除的Android活动边框?
- 12. 我无法移动,旋转,缩放Unity编辑器中的GameObject
- 13. Bootstrap在移动设备上无法正确缩放
- 14. 移动框架
- 15. 缩放UIImageView和移动缩放
- 16. 为什么canvas drawImage方法缩放?
- 17. Android-从文件中播放GIF动画
- 18. Flash CS5中的缩放框架图形
- 19. 如何在GDI中移动缩放线+
- 20. jQuery在webview中的移动UI缩放
- 21. PHP框架和移动框架
- 22. 哪些Canvas和Bitmap方法可通过dpi(Android)进行缩放?
- 23. 画布 - 在Android上放大,移动和缩放
- 24. 在Android中的缩放对话框
- 25. 捏缩放,平移mapview android
- 26. 缩放和平移ImageView Android
- 27. iphone5上的html5-canvas无法正确缩放
- 28. 在php中动态缩放图像jpg/png/gif
- 29. 我无法移动框架布局中的按钮
- 30. 在Ruby on Rails中拆分GIF框架
我发现,只有使用绘图代码的“其他”语句产生更好的结果 - 即。它扩展到所有设备。我在我的项目中混淆了'if'陈述。 – EricRobertBrewer 2016-04-08 23:42:06