Articles of 旋转

Android:从URI获取EXIF旋转

我想找出图片的EXIF旋转。 当图片显示在图库中时,图片不会旋转,但在用EXIF信息“向左旋转”加载图像后,图片会显示为旋转。 现在我想问用户,如果他想使用旋转的图像或原件。 我得到一个Uri的方法,并将其存储在一个位图 InputStream inputStream = PaintroidApplication.applicationContext.getContentResolver().openInputStream(bitmapUri); BitmapFactory.decodeStream(inputStream, null, options); inputStream.close(); 现在我想使用ExifInterface来确定旋转,但是ExifInterface需要一个path: ExifInterface exif = new ExifInterface(bitmapUri.getPath()); rotation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); 现在我遇到了path问题,logcat显示以下消息: E / JHEAD:无法打开'/ document / image:15035' 我该如何解决这个问题或者是否有其他解决scheme来查找EXIF信息?

Android自定义ProgressBar不旋转

我想更改ProgressBar的默认animation,所以我在主题中添加了一个自定义样式: styles.xml <style name="ProgressTheme" parent="@android:style/Widget.ProgressBar.Large"> <item name="android:indeterminateDrawable">@drawable/spinner_holo_light</item> </style> 我在ProgressBar调用这个样式,如下所示: ProgressBar.xml <ProgressBar android:id="@+id/loadingProgressBar" style="@style/ProgressTheme" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 问题出在spinner_holo_light.xml : 如果我使用以下内容,在os 3.0+的设备上,一切工作正常,但进程不会在旧的操作系统版本上旋转: spinner_holo_light.xml <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/spinner_76_inner_holo" android:fromDegrees="720" android:pivotX="50%" android:pivotY="50%" android:toDegrees="0" /> 但是,如果我使用animate-rotate ,animation工作在每个操作系统版本,但结果是非常滞后的animation。 <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/spinner_76_inner_holo" android:fromDegrees="720" android:pivotX="50%" android:pivotY="50%" android:toDegrees="0" /> 你怎么看待这件事? 我在这里做错了什么?

以编程方式禁用和启用Android中活动的方向更改

我有一个应用程序,使一些后台人员。 当后台工作正在运行一个进度的时候,如果设备在这段时间内被旋转了,那么活动就会“重置”,我想避免这种情况。 出于这个原因,我决定在这个过程中禁用定位。 我已经看到这个问题differends线程,但没有一个有效的解决scheme,至less在我的情况。 发布的解决scheme是关于修复活动方向,但是如果您使用以下操作,则必须处理REVERSE方向未返回的事实: getResources().getConfiguration().orientation 上面的函数返回SCREEN_ORIENTATION_PORTRAIT对于PORTRAIT和REVERSE_PORTRAIT情况(至less在我的testing中)。 所以最后我用旋转值来处理,所以我的代码“禁用旋转”是: int rotation = getWindowManager().getDefaultDisplay().getRotation(); switch(rotation) { case Surface.ROTATION_180: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); break; case Surface.ROTATION_270: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); break; case Surface.ROTATION_0: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); break; case Surface.ROTATION_90: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); break; } 再次允许方向: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); 这在Android 4.1.2的设备中是完美的,但是在Android 4.2.1的设备中,它并不像预期的那样工作。 我想在活动周期中pipe理轮换应该是一个常见问题,但是我一直没有find合适的解决scheme。 可能是我正在寻找错误的方向,所以任何帮助真的很受欢迎。 在此先感谢,伊万。

获取旋转和度数显示

我需要一些非常简单的东西,但我找不到一个合适的例子来学习。 我唯一的目的是以下几点: 由于设备平放在桌面上,因此X轴和Y轴应显示0(或接近0)。 当我从顶部(扬声器所在的位置)和底部(麦克风所在的位置)放下扬声器时,应该会显示手机倾斜了多less度数。 在math上描述 – 以度数表示手机背面和桌子之间的angular度,对于其中一个轴。 当我抬起底部(顶部保持放下),然后显示负度。 另一个轴也是如此 – 将手机围绕其长边旋转。 我尝试使用陀螺仪或加速度计或旋转vector传感器组装来自不同示例的应用程序,但无法正常工作。 有人可以给我一个onSensorChanged函数的例子(所有的工作在这里进行),只是告诉我哪个传感器被使用,所以我知道要注册什么?

Android:高效的屏幕旋转处理

在Android中,当屏幕方向改变(在横向和纵向之间)时,如果处理不当,将会调用onCreate方法,当结果太简单地更改布局并保留所有相同信息时,将会重新创build整个活动。 我知道有几种方法可以解决这个问题,但我对最有效的方式感兴趣。 1)通过覆盖onConfigurationChanged()方法并将其保留为空来告诉清单,我将处理方向更改。 2)重写onSaveInstanceState()并将数据保存在onCreate()重新填充 3) onPause() ,这将创build一个数据包并发送到onSaveInstanceState() 显然,这些都是选项,但哪一个更好(小,中,大量的数据) 谢谢

Android的旋转imageview,我不能在imageAnimationEnd()中设置最终位置

我想旋转一个button上的每次点击30度的图像视图。 在第一个clic,我可以正确设置animation,但我不能成功地更新animation后的imageview位置。 当我再次点击button时,animation从imageview的原始位置开始,而不是从第一个animation之后的最终位置开始。 这是我的代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); turnImg = (ImageView) findViewById(R.id.imageViewturnImg ); Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.imgTurn); // Getting width & height of the given image. int w = bmp.getWidth(); int h = bmp.getHeight(); turnImg .setImageBitmap(bmp); Button buttonok = (Button) findViewById(R.id.buttonok); buttonok.setOnClickListener(new OnClickListener() { public void onClick(View v) { turn(); } […]

android如何旋转canvas矩形

我创build一个特定的大小的矩形,现在我想旋转到45度,我用canvas.rotate,matrix,但不工作。 如何在Android中旋转canvas的正确方法? 我很好奇Path.Direction.CW,是否用于旋转? 但我没有看到path()中的任何旋转函数 paint.setAntiAlias(true); paint.setStrokeWidth(2); paint.setColor(Color.BLUE); paint.setAlpha(75); Path path = new Path(); path.addRect(166, 748, 314, 890, Path.Direction.CW); canvas.rotate(45); canvas.drawPath(path, paint);

如何在Android中关于图像中心平滑地旋转位图而无振动

我想旋转一个位图图像基于用户点击10度。 以下众多的计算器和谷歌答案,我尝试了matrix旋转的各种组合。 然而,图像并没有像预期的那样真正地旋转,并且给出了关于canvas中心的旋转和振动的抖动视图。 为了testing每次调用对象的绘制方法,我将旋转angular度增加10度(而不是点击)。 图像是一个对称的圆[64×64包围矩形],我希望它在屏幕中心像一个轮子一样围绕它自己的中心旋转,但是它以旋转的方式旋转和向右下移动并向右移动到屏幕中心。 public void draw(Canvas canvas) { Matrix matrix = new Matrix(); rotation += 10; float px = this.viewWidth/2; float py = this.viewHeight/2; matrix.setRotate(rotation, bitmap.getWidth()/2, bitmap.getHeight()/2); Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, getImgWidth(), getImgHeight(), matrix, true); canvas.drawBitmap(newbmp, px – (getImgWidth()/2), py – (getImgHeight()/2), null); }

使用Canvas.DrawBitmap在Android中进行Sprite旋转。 我很接近,我做错了什么?

我有这个精灵旋转algorithm(它的名字很差,只是用于testing)。 它是如此接近,用它画的精灵会旋转。 我可以添加+5度,并看到我的漂亮的小雪碧旋转。 问题是,canvas上的其他东西现在闪烁。 如果我不做旋转,经常画的精灵效果很好。 我想我很接近,但我不知道我失去了什么。 下面是我的两个“Draw_Sprite”方法,只是将之前的资源加载的位图绘制到传入的canvas中。另一个旋转最好,我知道如何旋转精灵很多度,然后绘制它。 如果我有一个很好的游戏循环,绘制几个对象,一种types是旋转types。 然后,非旋转的精灵闪烁,但旋转的精灵永远不会。 虽然如果我先绘制非旋转的精灵,一切都很好,但是Z-Ordering可能会被搞乱(在UI元素之上的精灵等等)…方法定义: /************************************************* * rotated sprite, ignore the whatever, its for ease of use and testing to have this argument list * @param c canvas to draw on. * @param whatever ignore * @param rot degrees to rotate * @return */ public int Draw_Sprite(Canvas c, int whatever, […]

屏幕旋转时不会调用onCreate – Android

我正在构build一个应用程序,需要知道该设备是横向还是纵向模式。 所以我想,我会使用onCreate,我知道这是在设备旋转调用。 但是onCreate只能打一次! 当我旋转设备,没有任何反应。 我正在debugging一个实际的设备,摩托罗拉Xoom,所以我不使用模拟器。 有人有这样的问题?