Articles of orientation

方向更改时保存scrollview的位置

这些是我的布局: 我需要在方向改变时保存滚动位置。 例如,如果屏幕在纵向模式下显示从中间名称开始的布局,则它应该在横向模式下从相同的位置开始。

如何在Android中全局强制屏幕方向?

有许多应用程序可以强制屏幕旋转。 即使应用程序明确希望以其他方向查看,它们也能正常工作。 现在我正在禁用加速度计旋转系统设置并设置我的首选方向。 应用程序仍然可以覆盖它。 以下是能够覆盖应用程序请求方向的应用程序之一: https://play.google.com/store/apps/details?id=nl.fameit.rotate&hl=en

如何使用ProgressDialog显示处理方向更改?

我在AsyncTask对象的onPreExecute方法中显示ProgressDialog ,并在onPreExecute方法中取消ProgressDialog。 在doInBackground方法中,我正在为用户注册发出HTTP请求。 我希望允许更改屏幕方向。 当我在doInBackground方法仍在运行时更改方向时,我会收到各种有趣的错误,例如’IllegalArgumentException:View not attached to window manager’和’RegisterScreen has leaked window …’ 如何在方向更改后正确继续显示ProgressDialog ? 或者,在用户请求提交注册后,如何禁用方向更改?

如何在android上制作精确的指南针

我的android应用程序显示了世界上某个特定位置的方向,因此需要获得指南针度。 这是我用来计算学位的代码: public void getDirection() { mySensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE); List mySensors = mySensorManager.getSensorList(Sensor.TYPE_ORIENTATION); if(mySensors.size() > 0){ mySensorManager.registerListener(mySensorEventListener, mySensors.get(0), SensorManager.SENSOR_DELAY_UI); } else{ TextView alert = (TextView)findViewById(R.id.instruct); alert.setText(getString(R.string.direction_not_found)); myCompassView.setVisibility(myCompassView.INVISIBLE); } } private SensorEventListener mySensorEventListener = new SensorEventListener(){ @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } @Override public void onSensorChanged(SensorEvent event) { […]

如何在onConfigurationChanged中获取根布局的新宽度/高度?

我们的一个视图将ScrollView作为其根布局。 当设备旋转并onConfigurationChanged() ,我们希望能够获得ScrollView的新宽度/高度。 我们的代码如下: @Override public void onConfigurationChanged(Configuration newConfig) { Log.d(TAG, “Width: ‘” + findViewById(R.id.scrollview).getWidth() + “‘”); Log.d(TAG, “Height: ‘” + findViewById(R.id.scrollview).getHeight() + “‘”); super.onConfigurationChanged(newConfig); Log.d(TAG, “Width: ‘” + findViewById(R.id.scrollview).getWidth() + “‘”); Log.d(TAG, “Height: ‘” + findViewById(R.id.scrollview).getHeight() + “‘”); } 我们的AndroidManifest.xml的相关部分如下所示: 最后,我们布局的相关部分如下所示: 在我们的Droid上,我们期望看到ScrollView的宽度在切换到横向时变为854,在切换回纵向时变为480(并且高度执行等效开关,减去菜单栏)。 但是,我们看到了相反的情况。 这是我们的LogCat: // Switching to landscape: 03-26 11:26:16.490: DEBUG/ourtag(17245): Width: ‘480’ // […]

平板电脑的肖像(Android-Layout)

所以我正在为Android制作应用程序,我想强制平板电脑的横向定位和手机的纵向定位。 然而,似乎我只能从我所看到的方向进行定位锁定,这违背了设备需要两个单独方向的目的。 平板电脑:风景手机:人像 更具技术性。 我在“res / layout-xlarge-land”中有一个用于在平板电脑上进行美化的布局,我在“res / layout”中有原始布局,我只想明确地使用layout-xlarge-land作为平板电脑。 没有别的,基本上只使用xlarge设备的横向。 谢谢!

如何在方向更改时保留EditText数据?

我有一个登录屏幕,其中包含2个用于用户名和密码的EditTexts。 我的要求是,在方向更改时,EditText中的输入数据(如果有)应保持原样,并且还应绘制新布局。 我有2个布局xml文件 – 一个在布局文件夹中,另一个在layout-land文件夹中。 我试图实现以下2种方法,但它们都不是完美的: (1)configChanges:keyboardHidden –在这种方法中,我没有在manifest文件中的configChanges中提供“orientation”。 所以我在onCreate()和onConfigurationChanged()方法中都调用了setContentView()方法。 它符合我的要求。 布局已更改,EditTexts中的输入数据也保持不变。 但它有一个很大的问题: 当用户单击“登录”按钮时,将显示ProgressDialog,直到收到服务器响应 。 现在,如果用户在ProgressDialog运行时旋转设备,则应用程序崩溃。 它显示一个exception,说“视图无法附加到窗口”。 我试图使用onSaveInstanceState处理它(它会在方向更改时被调用)但应用程序仍然崩溃。 (2)configChanges:orientation | keyboardHidden –在这种方法中,我在清单中提供“方向”。 所以现在我有两个场景: (a)如果我在onCreate()和onConfigurationChanged()中调用setContentView()方法,则相应地更改Layout,但EditText数据将丢失。 (b)如果我在onCreate()中调用setContentView()方法,而不是onConfigurationChanged(),则EditText数据不会丢失,但布局也不会相应地更改。 在这种方法中,甚至没有调用onSaveInstanceState()。 所以我处在一个非常令人生畏的境地。 有没有解决这个问题的方法? 请帮忙。 提前完成。

当方向发生变化时,会调用哪种活动方法?

当方向发生变化时,会调用生命周期的哪种方法? 我的应用程序执行onResume()方法或者可能重新加载整个活动,因为我设置了一个布尔值来检查它是否是第一次运行。 我已经阅读onConfigurationChanged()在方向发生变化时启动,是真的吗? 怎么办呢?

如何将ExifInterface与stream或URI一起使用

我正在编写一个应用程序,可以从Android的“通过共享”菜单发送照片URI。 你得到的URItypes是content://media/external/images/media/556但是ExifInterface一个标准的文件名。 那么如何读取该文件的Exif数据(我只想定位)呢? 这是我的(非工作)代码: Uri uri = (Uri)extras.getParcelable(Intent.EXTRA_STREAM); ContentResolver cr = getContentResolver(); InputStream is = cr.openInputStream(uri); Bitmap bm = BitmapFactory.decodeStream(is); // This line doesn't work: ExifInterface exif = new ExifInterface(uri.toString()); int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1); 任何帮助(除了“你必须写你自己的ExifInterface类”)赞赏!

如何在onConfigurationChanged中获取新的宽度/高度的根布局?

我们的一个视图有一个ScrollView作为它的根布局。 当设备旋转并onConfigurationChanged() ,我们希望能够获得ScrollView的新宽度/高度。 我们的代码如下所示: @Override public void onConfigurationChanged(Configuration newConfig) { Log.d(TAG, "Width: '" + findViewById(R.id.scrollview).getWidth() + "'"); Log.d(TAG, "Height: '" + findViewById(R.id.scrollview).getHeight() + "'"); super.onConfigurationChanged(newConfig); Log.d(TAG, "Width: '" + findViewById(R.id.scrollview).getWidth() + "'"); Log.d(TAG, "Height: '" + findViewById(R.id.scrollview).getHeight() + "'"); } 我们的AndroidManifest.xml的相关部分如下所示: <activity android:name=".SomeActivity" android:configChanges="keyboardHidden|orientation"> <intent-filter> <action android:name="android.intent.action.MAIN" /> </intent-filter> </activity> 最后,我们的布局的相关部分如下所示: <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scrollview" android:layout_height="fill_parent" […]