2017-02-12 3 views
0

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

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

Но до сих пор я не выяснил способ загрузки изображения из папки ресурсов на фрагмент. findViewById, входной поток, все приводили к неизвестной ошибке метода.

Любая помощь будет с радостью оценена.

Исходный код и APK можно найти здесь:https://drive.google.com/drive/folders/0B1_AQxgFWCzuT0Vxdkx0cmxQMG8?usp=sharing

+0

Какая ошибка вы получаете? можете ли вы поделиться логарифмом, пожалуйста? – tahsinRupam

+0

@tahsinRupam здесь вы идете. [Logcat File] (https://drive.google.com/file/d/0B1_AQxgFWCzuWjVGR1lWNjRTcTA/view?usp=sharing). Любопытно, что я также получил предупреждение 'I/хореограф: пропустил 39 кадров! Приложение может делать слишком много работы над своим основным потоком ». При нажатии на кнопку. приложения очень laggy –

ответ

0

Если вы загружаете большие изображения в ImageViews, вы должны использовать библиотеку загрузки изображений. Я бы порекомендовал Glide: https://github.com/bumptech/glide (есть инструкции по включению Glide в ваш проект и как его использовать на странице Github).

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

Для того, чтобы использовать findViewById в виде фрагмента, вы должны использовать метод onCreateView как так (я использую ImageView в моем примере):

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.your_layout, container, false); 

    ImageView imageView = (ImageView) view.findViewById(R.id.image_view); 

    return view; 
} 

Насколько мне известно, не было бы никакого преимущества в использовании папки с ресурсами в папке с возможностью переноса.

+0

Спасибо за помощь! я попробую сейчас посмотреть, работает ли он –

Смежные вопросы