2016-01-08 5 views
0

Я знаю, что таких вопросов очень много. Тем не менее, все они стремятся принести изображение в полноэкранном режиме после нажатия.Как получить изображение в полноэкранном режиме на Android?

Я хочу принести изображение на полный экран, не нажимая на него. Другими словами, когда я нажимаю на растровое изображение, я должен получить полноэкранный imageView. Я много пробовал, но не смог добиться желаемых результатов.

До сих пор я пробовал это thread's все возможные решения.

Кроме того, я попытался использовать несколько вариантов масштабирования.

Я самообучающийся андроид, используя руководство по ранчо большого ботаника. Я прилагаю мой код и изображения ниже

public View onCreateView(LayoutInflater inflater, 
          ViewGroup parent, Bundle savedInstanceState) { 
     imageView=new ImageView(getActivity()); 
     String path= (String) getArguments().getSerializable(FILE_PATH_NAME); 
     BitmapDrawable image = PictureUtils.getScaledDrawable(getActivity(), path); 
     float rotation= rotateImage(getActivity(), path); 
     Log.i("RotateImagee", "Rotate valuee: " + rotation); 
     imageView.setRotation(rotation + 90); 
     imageView.setImageDrawable(image); 
     imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
     return imageView; 
    } 

Изображения: enter image description here

Я хочу, чтобы экран полностью покрытый это изображение с надлежащим масштабированием. Поэтому, пожалуйста, покажите мне подходящее решение с правильным масштабированием.

+0

перед «downvoting» внимательно прочитайте описание. Я четко различал свой вопрос из остального там! –

+0

Вы пробовали 'imageView.setScaleType (ScaleType.FIT_XY); imageView.setAdjustViewBounds (истина); '? Кроме того, второй вызов 'setScaleType()' делает первый бесполезным. – SqueezyMo

+0

Спасибо, что ответили! Я пробовал все возможные комбинации методов setScaleType(). Однако я не смог достичь желаемых результатов. Я также пробовал imageView.setAdjustViewBounds (true); но не получили результатов. Изображение остается в этом кадре с различным масштабированием. Он не отображается в полноэкранном режиме –

ответ

1

Вы можете использовать только один тип сканера, а CENTER_INSIDE переопределяет FIT_XY. Используйте только FIT_XY. Senconly, когда вы создаете свой ImageView, вы не даете ему layoutparams (по умолчанию - wrap_content), поэтому вам нужно установить layoutparams в match_parent. Без него imageView изменит размер на wrap_content, а FIT_XY не повлияет.

Here - ссылка, если вы хотите сделать работу на весь экран. вам также необходимо удалить ActionBar, Here.

+0

Как упоминалось выше, я пробовал все возможные комбинации прикрепленной нити. imageView.setLayoutParams (новый LinearLayout.LayoutParams (LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); Я использовал этот код. Я не получил полноэкранный просмотр только масштабированного. Я также называл FIT_XY. Тем не менее, я получил только правильную масштабированную версию, которая остается под этой серой рамкой! –

+0

Я не понимаю, почему он находится под этой серой коробкой. Кроме того, что представляет собой эта серая рамка. Это макет моего родителя? –

+0

Что значит «под этой серой коробкой»? –

0

Тот факт, что фон и панель инструментов являются серыми, заставляют меня думать, что вы показываете свой ImageView внутри DialogFragment, а не обычный Fragment. DialogFragment s немного разные. Привлечение их к отображению полного экрана - нетривиальная задача. Если вы не пытаетесь отобразить Dialog, я предлагаю использовать обычный Fragment для отображения ImageView.

Боковые ноты:

  1. рассмотреть вращение растрового изображения, а не ImageView
  2. рассмотреть вопрос о создании в ImageView в файле макета и надувать этот файл макета (у вас уже есть LayoutInflater перешел к вам в onCreateView)
Смежные вопросы