Articles of 旋转

RotateAnimation没有持续时间

家伙。 我有这个代码(asyncTask) 我的animation()函数: public void animation() { int currentRotation = 0; anim = new RotateAnimation(currentRotation, (360*4), Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f); currentRotation = (currentRotation + 45) % 360; anim.setInterpolator(new LinearInterpolator()); anim.setDuration(4000);// i want rotating without this <—————— anim.setFillEnabled(true); anim.setFillAfter(true); refresh.startAnimation(anim); } 谁能告诉我没有anim.setDuration可以做到这anim.setDuration ???? 只是开始……当我按下按钮(例如)animation停止时。 请帮帮我。 问候,彼得。 最终代码: public void animation() { int currentRotation = 0; anim = […]

Android旋转MapView

我正在创建一个在mapview上追踪用户路径的应用程序。 当用户左转到例如地图时我想要实现的应该是自我旋转,使得mapview的头部始终指向向上的方向。 我希望这是有道理的。 他说,我遇到了罗曼盖伊先生的post 我在过去已经这样做了,它需要创建一个自定义ViewGroup,在dispatchDraw()方法中旋转Canvas。 您还需要增加MapView的大小(以便在旋转时绘制足够的像素。)您还需要在dispatchTouchEvent()中旋转触摸事件。 或者,如果您使用Android 3.0,您只需调用MapView.rotate(): 有没有人遇到过与我的问题类似的解决方案? 一个工作的例子会非常好:)

让一项活动在轮换中被摧毁有什么好处?

我使用了两种方法: 让活动在轮换时被销毁 不要让活动在轮换时被破坏 我的方法几乎每次都是捕获旋转事件,如果需要调用setContentView并再次添加一些组件。 如果没有,只需让它旋转,布局设计适应。 到目前为止,我只看到了在具有非常动态的非常复杂结构的屏幕上销毁它的优点,每当我旋转而不是破坏时,在重新构建屏幕时显示出一些闪烁。 必须通过onSaveInstance,onRestoreInstace传递状态的开销有时非常容易出错,而且不知何故耗时。 我错过了什么吗? 更新: 我的代码中没有“Orientation.XPTO == …”。 这是两种方法中的每一种的逻辑(代码被重用): 在摧毁时 onCreate -> DrawUI() setContentView and add views -> fill() add content 不销毁时: onCreate -> DrawUI() setContentView and add views -> fill() add content onRotation -> DrawUI() setContentView and add views -> fill() add content 在轮换后调用setContentView时,它将为设备方向选择正确的布局(请通过Google的Reto Meier检查此答案https://stackoverflow.com/a/456918/327011 ) 并且DrawUI和fill必须具有纵向和横向布局的逻辑,因为可以在两个方向中的每一个上创建活动以开始。

在没有OutOfMemoryError或缩减的情况下在Android中旋转图像

基本上我正在尝试在Android应用程序中旋转位图(来自图像)。 我想这样做的原因是,即使垂直拍摄,从相机拍摄的照片(通过意图)也会水平显示,并且方向在图像上保留为元数据。 如果错了,请纠正我。 但问题是,如果在装有相当好的相机的手机上拍摄时,图像将占用大量内存,而且我没有find旋转和保存它的方法而没有获得OutOfMemoryError的风险。 下面的代码是我的地方: 加载图像 检查是否需要旋转 加载缩小版本以在ImageView中显示 如有必要,旋转小图像 在一个单独的线程; 加载,旋转和保存图像,因此将来不需要 对于应用程序而言,保持图像的分辨率非常重要,但欢迎任何带编码的技巧。 我在互联网上搜索了几天,找不到比我已经实现的更多的东西了。 这里有另一个主题,但似乎没有任何解决方案。 希望你能帮忙。 public Bitmap getBitmap(final Context c) { if (bitmap != null) return bitmap; final int rotate = necessaryRotation(c, file); // if(rotate != 0) rotateImageFile(c, rotate); try { // Get scaled version BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(file, options); […]

如何在不创建新位图的情况下旋转位图?

我正在使用它从现有的位置获取旋转的Bitmap : private Bitmap getRotatedBitmap(Bitmap bitmap, int angle) { int w = bitmap.getWidth(); int h = bitmap.getHeight(); Matrix mtx = new Matrix(); mtx.postRotate(angle); return Bitmap.createBitmap(bitmap, 0, 0, w, h, mtx, true); } 是否可以在不创建新位图的情况下执行此操作? 我试图用Canvas重绘相同的可变图像: Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, targetHeight, config); Canvas canvas = new Canvas(targetBitmap); Matrix matrix = new Matrix(); matrix.setRotate(mRotation,source.getWidth()/2,source.getHeight()/2); canvas.drawBitmap(targetBitmap, matrix, new Paint()); […]

Mp4video旋转元数据

我开发了一个android / iosvideo​​共享应用程序,可以录制video并将其上传到amazon s3。 兼容android / ios以mp4格式记录H264 / AAC编解码器。 用户可能拍摄肖像或风景和应用程序,从传感器获取信息,设置文件的旋转(在Android上的mediarecorder.setOrientationHint和iOS上类似的东西) 来自iOS的video在Android上运行良好,反之亦然。 问题是当我想在网络浏览器上播放video时。 支持mp4格式(即chrome)的浏览器显示video但忽略旋转元数据。 当我用linux上的mplayer播放这些video时,会发生同样的事情。 想到的第一个解决方案是 ffmpeg -i in.mp4 -vf transpose= out.mp4 浏览器忽略旋转元数据是否有原因? 这是一个错误吗? 我可以在录制video时做些什么来解决这个问题吗? 这里分别是来自iOS和android的2个示例。 Thansk iosvideo 安卓video

当我将图像旋转到45度覆盖出来的android界限

在这里,我有一个关于种植相关的快速问题。 我用这个库进行裁剪 这是MainActivity cropperSample中的一些代码段: rotateButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { cropImageView.rotateImage(45); } }); https://github.com/edmodo/cropper 这里裁剪工作完美我对裁剪没有任何问题。但我的问题是当我将图像旋转到图像边界的45度重叠时。 图片如下所示。 我的要求是叠加应该在里面并且可以移动到任何角落,如果图像在任何角度都不会出现图像边界。 我用Google搜索并尝试了很多方法,但没有用 如果有人有想法请帮助我.. 提前致谢..

确定片段重启是由于屏幕旋转还是Viewpager滑动?

我有一个ViewPager Activity 。 ViewPager有很多页面,就像一本书。 每个片段都有RecyclerViews ,内容很多。 以下是我的用例 1 – 当我滑动页面时,RecyclerView必须从列表的开头开始。 2.如果我旋转设备,它应该从旋转前离开的位置的确切位置读取。 如果我不使用任何逻辑,第二种情况完美无缺。 即旋转。 但不是第一种情况。 如果我像下面那样做一些逻辑。 有助于实现第一种情况,但不是第二种情况。 @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); if (savedInstanceState==null) { mIsFirstTime = true; } } @Override public void onResume() { super.onResume(); try { getActivity().invalidateOptionsMenu(); if (!mIsFirstTime) { mListView.scrollToPosition(0); } } catch (Exception e) { e.printStackTrace(); } } […]

在Android <API Level 11中旋转ImageView

因此,在API Level 11中,谷歌推出了旋转ImageView的能力(耶和华,他们介绍了animation这样一个轮换的可能性,是的聪明思考,耶!) 但是我应该如何使用API​​级别8来旋转ImageView? 我不能使用如上所述的setRotation()。

Android:从Azimuth,roll&pitch获取设备方向

我需要获得更新的设备方向,但我必须将我的活动修复为Portrait(我在布局xml文件中做了),这阻止我使用它: int rotation = getWindowManager().getDefaultDisplay().getRotation(); 因为它总是给我画像旋转, 所以,我试图依靠传感器。 我发现不推荐使用Sensor.TYPE_ORIENTATION ,因此我使用了Sensor.TYPE_ACCELEROMETER和Sensor.TYPE_MAGNETIC_FIELD的组合,这里是事件监听器: SensorEventListener sensorEventListener = new SensorEventListener() { float[] mGravity; float[] mGeomagnetic; @Override public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) mGravity = event.values; if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) mGeomagnetic = event.values; if (mGravity != null && mGeomagnetic != null) { float R[] = new float[9]; float I[] […]