Articles of 旋转

Android布局视图围绕圆圈旋转和间隔?

我试图找出一种方法来围绕圆形布局一系列视图,以这种方式旋转每个视图从圆圈向外。 下图是我正在寻找的草图。 外部块是布局/视图组,红色方块表示我想要旋转的视图。 我熟悉PivotX,PivotY和旋转视图属性,并怀疑我会以某种方式使用它们,但我不确定如何使用这些以适当的布局来获得所需的效果。

Android:纵向模式下的相机预览方向

我正在使用相机仅显示预览(不拍照或录制video)。 应用程序始终处于纵向模式(禁用横向模式)。 相机预览始终旋转90度ccw并且我无法更改它(既不使用setDisplayOrientation也不使用p.set(“orientation”, “portrait” )和p.set(“rotation”, 90) ) 。 预览总是像这样旋转还是依赖于设备? 如果在纵向模式下总是如此,我可以随后旋转图像。 或者有没有办法正确设置相机? 我已经阅读了很多有关此问题的post,但没有答案对我有用(Galaxy s2,Android v2.3)

在Android中使用“USER_ROTATION”API低于11(解决方法?)

在我的应用程序中,我使用以下命令: Settings.System.putInt(getContentResolver(), Settings.System.USER_ROTATION, m_lockedInOrientation) 正如Android网站中所提到的,当android找不到时,这将设置默认方向。 : 没有其他策略适用时的默认屏幕旋转。 当ACCELEROMETER_ROTATION为零且屏幕上没有活动expression首选项时,将使用此轮换值。 目前这是我的应用程序不能在Android 2.X上运行但只有3.X +的唯一原因。 有没有人知道一种解决方法呢?

如何在不重新创建布局的情况下旋转方向更改视图?

这个问题在此之前已被提出,但其答案是错误的。 我想在屏幕方向更改上旋转一些视图,但我想保持布局不变。 它们应根据当前方向旋转90度,180度,270度或360度( SCREEN_ORIENTATION_LANDSCAPE , SCREEN_ORIENTATION_PORTRAIT , SCREEN_ORIENTATION_REVERSE_LANDSCAPE , SCREEN_ORIENTATION_REVERSE_PORTRAIT )。 这就是我想要实现的目标: 我提到的链接中的答案表明我应该在layout-land创建一个新的不同布局。 显然,这不是我想要的。 我不想重新创建活动或更改布局方向。 我只想旋转一些视图,并保持其他视图在方向更改时保持不变。 旋转特定视图与更改或重新创建整个布局(方向更改)之间存在巨大差异。 使用此链接中的答案,我将能够使用此方法获取当前屏幕方向: public static int getScreenOrientation(Context context) { WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); int rotation = windowManager.getDefaultDisplay().getRotation(); DisplayMetrics dm = new DisplayMetrics(); windowManager.getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; int height = dm.heightPixels; int orientation; // if the device’s natural orientation […]

如何禁用旋转到横向模式?

我试过这个 。 无法在清单文件中findconfigChanges 。 无论如何,如何禁用屏幕旋转(到横向模式)?

为什么我会想要`setRetainInstance(false)`? – 或 – 处理设备旋转的正确方法

如果我错了,请纠正我。 这是一个澄清问题,因为我没有在任何地方明确写过它。 在Android 4中,您可以在Fragment上调用setRetainInstance(true) ,以便在配置更改(这基本上意味着设备旋转)时,不会破坏Fragment java对象并且不会创建它的新实例。 也就是说,保留了实例。 由于您不必处理onRetainNonConfiguration State Instance()并将所有数据捆绑在一起,因此可以将其传递给新的Fragment (或Activity )实例,因此这比Android 1-3更加明智且不那么令人愤怒。再次分拆。 这基本上是你期望发生的事情,并且可以说它从一开始就应该如何适用于Activity 。 使用setRetainInstance(true) ,还可以按预期重新创建视图( onCreateView()被调用)。 我假设(未测试)资源分辨率( layout与layout-land )有效。 所以我的问题是双重的: 为什么从一开始就没有这样的Activities 。 为什么这不是默认值? 有没有理由为什么你真的希望你的Fragment在旋转时被毫无意义地破坏和重建? 因为我想不到任何。 编辑 澄清我将如何做到: class MyFragment extends Fragment { // All the data. String mDataToDisplay; // etc. // All the views. TextView mViewToDisplayItIn; // etc. @Override public void onCreate(Bundle savedInstanceState) […]

在Android中旋转MapView

我正在编写一个Android应用程序,其中一个function是地图将根据指南针旋转(即如果手机指向东方,地图将定向,以便地图的东侧位于顶部)。 我发现之前的答案建议在mapView中编写onDraw()方法,然而,api将方法更改为final,因此无法覆盖。 结果我试图像这样覆盖dispatchDraw()方法: 注意: -compass是一个布尔值,如果为true,则旋转视图 -bearing是一个浮点variables,具有视图应该旋转的度数 protected void dispatchDraw(Canvas canvas) { canvas.save(); if (compass) { final float w = this.getWidth(); final float h = this.getHeight(); final float scaleFactor = (float)(Math.sqrt(h * h + w * w) / Math.min(w, h)); final float centerX = w / 2.0f; final float centerY = h / 2.0f; canvas.rotate(bearing, centerX, […]

如何通过resize和旋转function来处理贴纸?

我目前正在开发一个应用程序,允许用户在图像上添加贴纸(帽子,头发,眼镜等) 。 用户可以调整该贴纸的大小,也可以旋转它并移动。 见图。 我有贴纸,但是如何将它们放在原始图像上并移动/旋转/放大它们以调整原始图像?

如何通过ObjectAnimator旋转drawable?

像这样对待一个可绘制的工作: if(mAlphaAnimation == null){ mAlphaAnimation = ObjectAnimator.ofFloat(this, “alpha”, 0.0f,1.0f).setDuration(TARGET_ANIM_ALPHA_DURATION); mAlphaAnimation.setInterpolator(new AccelerateDecelerateInterpolator()); mAlphaAnimation.setStartDelay(TARGET_ANIM_ALPHA_DELAY_BASE*power); mAlphaAnimation.setRepeatCount(ValueAnimator.INFINITE); mAlphaAnimation.setRepeatMode(ValueAnimator.REVERSE); mAlphaAnimation.addUpdateListener(this); } 但是,如果我想像下面那样旋转一个抽屉,它就不起作用了。 private void createRotateAnim(float fromDegress,float toDegress,int duration){ if(mRotateAnimation == null){ mRotateAnimation = ObjectAnimator.ofFloat(this, “rotation”,fromDegress,toDegress).setDuration(duration); mRotateAnimation.setStartDelay(100); mRotateAnimation.setInterpolator(new AccelerateInterpolator()); mRotateAnimation.addUpdateListener(this); } } 任何人都可以帮我解决这个问题,或者这是创建旋转可绘制animation的任何其他方法。 我很遗憾我的英语不好。

Android旋转位图90度会导致压缩图像。 需要在纵向和横向之间进行真正的旋转

我试图将位图图像旋转90度,将其从横向格式更改为纵向格式。 例: [A B C D] [e,f,g,h] [i,j,k,l] 顺时针旋转90度变为 [I,E,A] [J,F,B] [K,G,C] [L,H,d] 使用下面的代码(来自在线示例),图像旋转90度,但保留横向纵横比,因此您最终得到一个垂直压扁的图像。 难道我做错了什么? 我需要使用另一种方法吗? 我也愿意旋转我用来创建位图的jpeg文件,如果这更容易的话。 // create a matrix for the manipulation Matrix matrix = new Matrix(); // resize the bit map matrix.postScale(scaleWidth, scaleHeight); // rotate the Bitmap matrix.postRotate(90); // recreate the new Bitmap Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOriginal, 0, 0, widthOriginal, heightOriginal, matrix, […]