#android #imageview #orientation #screen-rotation
#Android #imageview #ориентация #поворот экрана
Вопрос:
Когда я поворачиваю экран, ImageView не изменяет масштаб изображения, но собственный Imageview поворачивает изображение.
Как я могу этого добиться?
Проект https://github.com/jasonpolites/gesture-imageview
Манифест:
<activity android:name="ScaleTypeCenterInsidePortrait"
android:configChanges="orientation|screenSize"></activity>
Мой класс ScaleTypeCenterInsidePortrait:
public class ScaleTypeCenterInsidePortrait extends ExampleActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.scale_type_inside_portrait);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
}
Комментарии:
1. Четко написано, что он не поддерживает вращение.
2. да, я переопределяю onConfigurationChanged, но какой метод пересчитывает масштаб изображения и перерисовывает макет.
Ответ №1:
замените эти строки в своем коде
public class ScaleTypeCenterInsidePortrait extends ExampleActivity {
ImageView imv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
imv=new ImageView(this);
imv.setimageResource(R.drawable."your image name in the drwable folder");
imv.setscaleType(ScaleType.Center_Inside);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
setContentView(imv);
}
else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
setContentView(imv);
}
}
}
и поместите в манифест эти строки
<activity android:name=".Activity_name"
android:configChanges="orientation|keyboardHidden">
Комментарии:
1. ImageView работает нормально, но я использую GestureImageView (1-й пост) — он не работает
2. Попробуйте это и дайте мне знать, GestureImageview giv=GestureImageview)findViewById(R.id .»yourGestureImageviewId»); giv.setScaleType(scaleType. CENTER);// тип масштаба по умолчанию
3. это работает, но макет после изменения ориентации не масштабируется для реального экрана устройства
4. это работает, значит, проголосуйте за мой ответ, чувак, и проверьте, добавили ли вы эти строки в свой XML-жест-изображение: минимальный масштаб = «0,1» жест-изображение: максимальный масштаб = «10,0» жест-изображение: строгий = «ложь»
5. это не то, что мне было нужно