![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Загрузка изображения из галереиСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Предположим, у вас есть на экране компонент ImageView, и вы хотите загрузить в него какое-нибудь изображение из галереи по нажатию кнопки:
Button myButton; ImageView myImageView; static final int GALLERY_REQUEST = 1;
myButton = (Button)findViewById(R.id.button1); myImageView = (ImageView)findViewById(R.id.imageView1);
myButton.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) { // TODO Auto-generated method stub
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); photoPickerIntent.setType("image/*"); startActivityForResult(photoPickerIntent, GALLERY_REQUEST); } });
@Override protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
Bitmap galleryPic = null;
switch(requestCode) { case GALLERY_REQUEST: if(resultCode == RESULT_OK){ Uri selectedImage = imageReturnedIntent.getData(); try { galleryPic = Media.getBitmap(getContentResolver(), selectedImage); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } myImageView.setImageBitmap(galleryPic); } } } Намерение ACTION_PICK вызывает отображение галереи всех изображений, хранящихся на телефоне, позволяя выбрать одно изображение. При этом возвращается адрес URI, определяющий местоположение выбранного изображения. Для его получения используется метод getData(). Далее для преобразования URI-адреса в соответствующий экземпляр класса Bitmap используется специальный метод Media.getBitmap(). И у нас появляется возможность установить изображение в ImageView при помощи setImageBitmap(). На самом деле можно поступить еще проще и использовать метод setImageURI.
Uri selectedImage = imageReturnedIntent.getData(); myImageView.setImageURI(selectedImage); Сравните с предыдущим примером - чувствуете разницу? Тем не менее, приходится часто наблюдать подобный избыточный код во многих проектах. Это связано с тем, что метод порой кэширует адрес и не происходит изменений. Рекомендуется использовать инструкцию setImageURI(null) для сброса кэша и повторный вызов метода с нужным Uri. Получить размеры ImageView - будьте осторожны У элемента ImageView есть два метода getWidth() и getHeight(), позволяющие получить его ширину и высоту. Но если вы попробуете вызвать указанные методы сразу в методе onCreate(), то они возвратят нулевые значения. Можно добавить кнопку и вызвать данные методы через нажатие, тогда будут получены правильные результаты. Либо использовать другой метод активности, который наступает позже.
ImageView image; TextView info1; Button butGetSizeImageV;
/** Called when the activity is first created. */
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
image = (ImageView)findViewById(R.id.imageView1); info1 = (TextView)findViewById(R.id.textView1); butGetSizeImageV = (Button)findViewById(R.id.button1);
// пробуем получить размеры ImageView сразу при загрузке. Вернёт нулевые значения info1.setText("Размеры ImageView: " + String.valueOf(image.getWidth()) + ": " + String.valueOf(image.getHeight()));
butGetSizeImageV.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // этот же код вызывается при нажатии кнопки. Теперь всё правильно info1.setText("Размеры ImageView: " + String.valueOf(image.getWidth()) + ": " + String.valueOf(image.getHeight())); } }); }
|
|||||
Последнее изменение этой страницы: 2017-01-27; просмотров: 521; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.36.228 (0.009 с.) |