Урок 161. Рисование. Bitmap. Memory-кэш. Picasso

Обсуждение уроков
Ответить
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 161. Рисование. Bitmap. Memory-кэш. Picasso

Сообщение damager82 » 05 ноя 2014, 05:00

В этом уроке:
- используем memory-кэш
- используем библиотеку Picasso


Click here to read this article!
Последний раз редактировалось damager82 06 июн 2017, 00:50, всего редактировалось 7 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

bydirect
Сообщения: 70
Зарегистрирован: 11 июн 2014, 10:36

Re: Урок 161. Рисование. Bitmap. Memory-кэш. Picasso

Сообщение bydirect » 05 ноя 2014, 13:19

Спасибо за отличный урок! А как сделать скачивание и отображение картинок из интернета, зная их URL?

razmus
Сообщения: 82
Зарегистрирован: 26 мар 2013, 10:47

Re: Урок 161. Рисование. Bitmap. Memory-кэш. Picasso

Сообщение razmus » 06 ноя 2014, 13:47

bydirect писал(а):Спасибо за отличный урок! А как сделать скачивание и отображение картинок из интернета, зная их URL?
http://www.androidhive.info/2012/04/and ... gress-bar/

isachenko
Сообщения: 47
Зарегистрирован: 30 июл 2014, 21:43

Re: Урок 161. Рисование. Bitmap. Memory-кэш. Picasso

Сообщение isachenko » 13 ноя 2014, 19:53

Спасибо Вам за уроки!
Разбираюсь с bitmap и хочу вывести изображения из drawable в ListView.
Но как новичок не могу сообразить, как сопоставить свой код и код урока и перестроить его.
Список делала по Вашим урокам, но изображения для него слишком велики, и получаю OutOfMemory.
Подскажите, пожалуйста:
1)мне нужно вместо моего адаптера вставлять класс static class ImageAapter extends ArrayAdapter<File> ?
2)и как писать эту часть:
File dir = new File(Environment.getExternalStorageDirectory(), "Download/L0161");
File[] filesArray = dir.listFiles();

if (filesArray != null) {
ImageAapter adapter = new ImageAapter(this, filesArray);
mLvImages.setAdapter(adapter);

Unit.java создан.
Большое спасибо!

вот исходный код:
[syntax=java5]package com.example.lvivguide;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;


public class List extends Activity {

String[] names;
ListView lvMain;
final String ATTRIBUTE_NAME_IMAGE = "image";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.second);


int [] img = {R.drawable.btn8, R.drawable.btn13, R.drawable.btn7, R.drawable.btn18,
R.drawable.btn10, R.drawable.btn39, R.drawable.btn47, R.drawable.btn1,
R.drawable.btn19, R.drawable.btn38, R.drawable.btn42, R.drawable.btn57,
R.drawable.btn59, R.drawable.btn21, R.drawable.btn17, R.drawable.btn20,
R.drawable.btn4, R.drawable.btn2_v, R.drawable.btn3, R.drawable.btn5,
R.drawable.btn34, R.drawable.btn36, R.drawable.btn65, R.drawable.btn22,
R.drawable.btn6, R.drawable.btn9, R.drawable.btn37, R.drawable.btn43,
R.drawable.btn63, R.drawable.btn64, R.drawable.btn62, R.drawable.btn31,
R.drawable.btn25, R.drawable.btn32, R.drawable.btn50, R.drawable.btn33,
R.drawable.btn48, R.drawable.btn24, R.drawable.btn54, R.drawable.btn55,
R.drawable.btn49, R.drawable.btn52, R.drawable.btn45, R.drawable.btn51,
R.drawable.btn35, R.drawable.btn40, R.drawable.btn44, R.drawable.btn53,
R.drawable.btn60, R.drawable.btn15, R.drawable.btn11, R.drawable.btn14,
R.drawable.btn29, R.drawable.btn58, R.drawable.btn30, R.drawable.btn16,
R.drawable.btn12, R.drawable.btn26, R.drawable.btn61, R.drawable.btn46,
R.drawable.btn41, R.drawable.btn23, R.drawable.btn27, R.drawable.btn56,
R.drawable.btn28};



ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>(
img.length);
Map<String, Object> m;
for (int i = 0; i < img.length; i++) {
m = new HashMap<String, Object>();
m.put(ATTRIBUTE_NAME_IMAGE, img);
data.add(m);
}

// массив имен атрибутов, из которых будут читаться данные
String[] from = {ATTRIBUTE_NAME_IMAGE };
// массив ID View-компонентов, в которые будут вставлять данные
int[] to = {R.id.ivImg };

// создаем адаптер
SimpleAdapter sAdapter = new SimpleAdapter(this, data, R.layout.my_list_item,
from, to);

// определяем список и присваиваем ему адаптер
lvMain = (ListView) findViewById(R.id.lvMain);
lvMain.setAdapter(sAdapter);

lvMain.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
switch ((int)id) {
case 0:
Intent intent = new Intent (List.this, Info.class);
startActivity(intent);
break;
case 1:
Intent intent1 = new Intent (List.this, Info.class);
startActivity(intent1);
break;
case 2:
Intent intent2 = new Intent (List.this, Info.class);
startActivity(intent2);
break;
case 3:
Intent intent3 = new Intent (List.this, Info.class);
startActivity(intent3);
break;
case 4:
Intent intent4 = new Intent (List.this, Info.class);
startActivity(intent4);
break;
case 5:
Intent intent5 = new Intent (List.this, Info.class);
startActivity(intent5);
break;
case 6:
Intent intent6 = new Intent (List.this, Info.class);
startActivity(intent6);
break;
case 7:
Intent intent7 = new Intent (List.this, Info.class);
startActivity(intent7);
break;
case 8:
Intent intent8 = new Intent (List.this, Info.class);
startActivity(intent8);
break;
case 9:
Intent intent9 = new Intent (List.this, Info.class);
startActivity(intent9);
break;
case 10:
Intent intent10 = new Intent (List.this, Info.class);
startActivity(intent10);
break;
case 11:
Intent intent11 = new Intent (List.this, Info.class);
startActivity(intent11);
break;
case 12:
Intent intent12 = new Intent (List.this, Info.class);
startActivity(intent12);
break;
case 13:
Intent intent13 = new Intent (List.this, Info.class);
startActivity(intent13);
break;
case 14:
Intent intent14 = new Intent (List.this, Info.class);
startActivity(intent14);
break;
case 15:
Intent intent15 = new Intent (List.this, Info.class);
startActivity(intent15);
break;
case 16:
Intent intent16 = new Intent (List.this, Info.class);
startActivity(intent16);
break;
case 17:
Intent intent17 = new Intent (List.this, Info.class);
startActivity(intent17);
break;
case 18:
Intent intent18 = new Intent (List.this, Info.class);
startActivity(intent18);
break;
case 19:
Intent intent19 = new Intent (List.this, Info.class);
startActivity(intent19);
break;
case 20:
Intent intent20 = new Intent (List.this, Info.class);
startActivity(intent20);
break;
case 21:
Intent intent21 = new Intent (List.this, Info.class);
startActivity(intent21);
break;
case 22:
Intent intent22 = new Intent (List.this, Info.class);
startActivity(intent22);
break;
case 23:
Intent intent23 = new Intent (List.this, Info.class);
startActivity(intent23);
break;
case 24:
Intent intent24 = new Intent (List.this, Info.class);
startActivity(intent24);
break;
case 25:
Intent intent25 = new Intent (List.this, Info.class);
startActivity(intent25);
break;
case 26:
Intent intent26 = new Intent (List.this, Info.class);
startActivity(intent26);
break;
case 27:
Intent intent27 = new Intent (List.this, Info.class);
startActivity(intent27);
break;
case 28:
Intent intent28 = new Intent (List.this, Info.class);
startActivity(intent28);
break;
case 29:
Intent intent29 = new Intent (List.this, Info.class);
startActivity(intent29);
break;
case 30:
Intent intent30 = new Intent (List.this, Info.class);
startActivity(intent30);
break;
case 31:
Intent intent31 = new Intent (List.this, Info.class);
startActivity(intent31);
break;
case 32:
Intent intent32 = new Intent (List.this, Info.class);
startActivity(intent32);
break;
case 33:
Intent intent33 = new Intent (List.this, Info.class);
startActivity(intent33);
break;
case 34:
Intent intent34 = new Intent (List.this, Info.class);
startActivity(intent34);
break;
case 35:
Intent intent35 = new Intent (List.this, Info.class);
startActivity(intent35);
break;
case 36:
Intent intent36 = new Intent (List.this, Info.class);
startActivity(intent36);
break;
case 37:
Intent intent37 = new Intent (List.this, Info.class);
startActivity(intent37);
break;
case 38:
Intent intent38 = new Intent (List.this, Info.class);
startActivity(intent38);
break;
case 39:
Intent intent39 = new Intent (List.this, Info.class);
startActivity(intent39);
break;
case 40:
Intent intent40 = new Intent (List.this, Info.class);
startActivity(intent40);
break;
case 41:
Intent intent41 = new Intent (List.this, Info.class);
startActivity(intent41);
break;
case 42:
Intent intent42 = new Intent (List.this, Info.class);
startActivity(intent42);
break;
case 43:
Intent intent43 = new Intent (List.this, Info.class);
startActivity(intent43);
break;
case 44:
Intent intent44 = new Intent (List.this, Info.class);
startActivity(intent44);
break;
case 45:
Intent intent45 = new Intent (List.this, Info.class);
startActivity(intent45);
break;
case 46:
Intent intent46 = new Intent (List.this, Info.class);
startActivity(intent46);
break;
case 47:
Intent intent47 = new Intent (List.this, Info.class);
startActivity(intent47);
break;
case 48:
Intent intent48 = new Intent (List.this, Info.class);
startActivity(intent48);
break;
case 49:
Intent intent49 = new Intent (List.this, Info.class);
startActivity(intent49);
break;
case 50:
Intent intent50 = new Intent (List.this, Info.class);
startActivity(intent50);
break;
case 51:
Intent intent51 = new Intent (List.this, Info.class);
startActivity(intent51);
break;
case 52:
Intent intent52 = new Intent (List.this, Info.class);
startActivity(intent52);
break;
case 53:
Intent intent53 = new Intent (List.this, Info.class);
startActivity(intent53);
break;
case 54:
Intent intent54 = new Intent (List.this, Info.class);
startActivity(intent54);
break;
case 55:
Intent intent55 = new Intent (List.this, Info.class);
startActivity(intent55);
break;
case 56:
Intent intent56 = new Intent (List.this, Info.class);
startActivity(intent56);
break;
case 57:
Intent intent57 = new Intent (List.this, Info.class);
startActivity(intent57);
break;
case 58:
Intent intent58 = new Intent (List.this, Info.class);
startActivity(intent58);
break;
case 59:
Intent intent59 = new Intent (List.this, Info.class);
startActivity(intent59);
break;
case 60:
Intent intent60 = new Intent (List.this, Info.class);
startActivity(intent60);
break;
case 61:
Intent intent61 = new Intent (List.this, Info.class);
startActivity(intent61);
break;
case 62:
Intent intent62 = new Intent (List.this, Info.class);
startActivity(intent62);
break;
case 63:
Intent intent63 = new Intent (List.this, Info.class);
startActivity(intent63);
break;
case 64:
Intent intent64 = new Intent (List.this, Info.class);
startActivity(intent64);
break;
}
}
});


lvMain.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {

}

public void onNothingSelected(AdapterView<?> parent) {

}
});

lvMain.setOnScrollListener(new OnScrollListener() {
public void onScrollStateChanged(AbsListView view, int scrollState) {

}

public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {

}
});


}[/syntax]
Спасибо за уроки!

isachenko
Сообщения: 47
Зарегистрирован: 30 июл 2014, 21:43

Re: Урок 161. Рисование. Bitmap. Memory-кэш. Picasso

Сообщение isachenko » 29 ноя 2014, 16:32

isachenko писал(а):Спасибо Вам за уроки!
Разбираюсь с bitmap и хочу вывести изображения из drawable в ListView.
Но как новичок не могу сообразить, как сопоставить свой код и код урока и перестроить его.
Список делала по Вашим урокам, но изображения для него слишком велики, и получаю OutOfMemory.
Подскажите, пожалуйста:
1)мне нужно вместо моего адаптера вставлять класс static class ImageAapter extends ArrayAdapter<File> ?
2)и как писать эту часть:
File dir = new File(Environment.getExternalStorageDirectory(), "Download/L0161");
File[] filesArray = dir.listFiles();

if (filesArray != null) {
ImageAapter adapter = new ImageAapter(this, filesArray);
mLvImages.setAdapter(adapter);

Unit.java создан.
Большое спасибо!

вот исходный код:
[syntax=java5]package com.example.lvivguide;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;


public class List extends Activity {

String[] names;
ListView lvMain;
final String ATTRIBUTE_NAME_IMAGE = "image";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.second);


int [] img = {R.drawable.btn8, R.drawable.btn13, R.drawable.btn7, R.drawable.btn18,
R.drawable.btn10, R.drawable.btn39, R.drawable.btn47, R.drawable.btn1,
R.drawable.btn19, R.drawable.btn38, R.drawable.btn42, R.drawable.btn57,
R.drawable.btn59, R.drawable.btn21, R.drawable.btn17, R.drawable.btn20,
R.drawable.btn4, R.drawable.btn2_v, R.drawable.btn3, R.drawable.btn5,
R.drawable.btn34, R.drawable.btn36, R.drawable.btn65, R.drawable.btn22,
R.drawable.btn6, R.drawable.btn9, R.drawable.btn37, R.drawable.btn43,
R.drawable.btn63, R.drawable.btn64, R.drawable.btn62, R.drawable.btn31,
R.drawable.btn25, R.drawable.btn32, R.drawable.btn50, R.drawable.btn33,
R.drawable.btn48, R.drawable.btn24, R.drawable.btn54, R.drawable.btn55,
R.drawable.btn49, R.drawable.btn52, R.drawable.btn45, R.drawable.btn51,
R.drawable.btn35, R.drawable.btn40, R.drawable.btn44, R.drawable.btn53,
R.drawable.btn60, R.drawable.btn15, R.drawable.btn11, R.drawable.btn14,
R.drawable.btn29, R.drawable.btn58, R.drawable.btn30, R.drawable.btn16,
R.drawable.btn12, R.drawable.btn26, R.drawable.btn61, R.drawable.btn46,
R.drawable.btn41, R.drawable.btn23, R.drawable.btn27, R.drawable.btn56,
R.drawable.btn28};



ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>(
img.length);
Map<String, Object> m;
for (int i = 0; i < img.length; i++) {
m = new HashMap<String, Object>();
m.put(ATTRIBUTE_NAME_IMAGE, img);
data.add(m);
}

// массив имен атрибутов, из которых будут читаться данные
String[] from = {ATTRIBUTE_NAME_IMAGE };
// массив ID View-компонентов, в которые будут вставлять данные
int[] to = {R.id.ivImg };

// создаем адаптер
SimpleAdapter sAdapter = new SimpleAdapter(this, data, R.layout.my_list_item,
from, to);

// определяем список и присваиваем ему адаптер
lvMain = (ListView) findViewById(R.id.lvMain);
lvMain.setAdapter(sAdapter);

lvMain.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
switch ((int)id) {
case 0:
Intent intent = new Intent (List.this, Info.class);
startActivity(intent);
break;
case 1:
Intent intent1 = new Intent (List.this, Info.class);
startActivity(intent1);
break;
case 2:
Intent intent2 = new Intent (List.this, Info.class);
startActivity(intent2);
break;
case 3:
Intent intent3 = new Intent (List.this, Info.class);
startActivity(intent3);
break;
case 4:
Intent intent4 = new Intent (List.this, Info.class);
startActivity(intent4);
break;
case 5:
Intent intent5 = new Intent (List.this, Info.class);
startActivity(intent5);
break;
case 6:
Intent intent6 = new Intent (List.this, Info.class);
startActivity(intent6);
break;
case 7:
Intent intent7 = new Intent (List.this, Info.class);
startActivity(intent7);
break;
case 8:
Intent intent8 = new Intent (List.this, Info.class);
startActivity(intent8);
break;
case 9:
Intent intent9 = new Intent (List.this, Info.class);
startActivity(intent9);
break;
case 10:
Intent intent10 = new Intent (List.this, Info.class);
startActivity(intent10);
break;
case 11:
Intent intent11 = new Intent (List.this, Info.class);
startActivity(intent11);
break;
case 12:
Intent intent12 = new Intent (List.this, Info.class);
startActivity(intent12);
break;
case 13:
Intent intent13 = new Intent (List.this, Info.class);
startActivity(intent13);
break;
case 14:
Intent intent14 = new Intent (List.this, Info.class);
startActivity(intent14);
break;
case 15:
Intent intent15 = new Intent (List.this, Info.class);
startActivity(intent15);
break;
case 16:
Intent intent16 = new Intent (List.this, Info.class);
startActivity(intent16);
break;
case 17:
Intent intent17 = new Intent (List.this, Info.class);
startActivity(intent17);
break;
case 18:
Intent intent18 = new Intent (List.this, Info.class);
startActivity(intent18);
break;
case 19:
Intent intent19 = new Intent (List.this, Info.class);
startActivity(intent19);
break;
case 20:
Intent intent20 = new Intent (List.this, Info.class);
startActivity(intent20);
break;
case 21:
Intent intent21 = new Intent (List.this, Info.class);
startActivity(intent21);
break;
case 22:
Intent intent22 = new Intent (List.this, Info.class);
startActivity(intent22);
break;
case 23:
Intent intent23 = new Intent (List.this, Info.class);
startActivity(intent23);
break;
case 24:
Intent intent24 = new Intent (List.this, Info.class);
startActivity(intent24);
break;
case 25:
Intent intent25 = new Intent (List.this, Info.class);
startActivity(intent25);
break;
case 26:
Intent intent26 = new Intent (List.this, Info.class);
startActivity(intent26);
break;
case 27:
Intent intent27 = new Intent (List.this, Info.class);
startActivity(intent27);
break;
case 28:
Intent intent28 = new Intent (List.this, Info.class);
startActivity(intent28);
break;
case 29:
Intent intent29 = new Intent (List.this, Info.class);
startActivity(intent29);
break;
case 30:
Intent intent30 = new Intent (List.this, Info.class);
startActivity(intent30);
break;
case 31:
Intent intent31 = new Intent (List.this, Info.class);
startActivity(intent31);
break;
case 32:
Intent intent32 = new Intent (List.this, Info.class);
startActivity(intent32);
break;
case 33:
Intent intent33 = new Intent (List.this, Info.class);
startActivity(intent33);
break;
case 34:
Intent intent34 = new Intent (List.this, Info.class);
startActivity(intent34);
break;
case 35:
Intent intent35 = new Intent (List.this, Info.class);
startActivity(intent35);
break;
case 36:
Intent intent36 = new Intent (List.this, Info.class);
startActivity(intent36);
break;
case 37:
Intent intent37 = new Intent (List.this, Info.class);
startActivity(intent37);
break;
case 38:
Intent intent38 = new Intent (List.this, Info.class);
startActivity(intent38);
break;
case 39:
Intent intent39 = new Intent (List.this, Info.class);
startActivity(intent39);
break;
case 40:
Intent intent40 = new Intent (List.this, Info.class);
startActivity(intent40);
break;
case 41:
Intent intent41 = new Intent (List.this, Info.class);
startActivity(intent41);
break;
case 42:
Intent intent42 = new Intent (List.this, Info.class);
startActivity(intent42);
break;
case 43:
Intent intent43 = new Intent (List.this, Info.class);
startActivity(intent43);
break;
case 44:
Intent intent44 = new Intent (List.this, Info.class);
startActivity(intent44);
break;
case 45:
Intent intent45 = new Intent (List.this, Info.class);
startActivity(intent45);
break;
case 46:
Intent intent46 = new Intent (List.this, Info.class);
startActivity(intent46);
break;
case 47:
Intent intent47 = new Intent (List.this, Info.class);
startActivity(intent47);
break;
case 48:
Intent intent48 = new Intent (List.this, Info.class);
startActivity(intent48);
break;
case 49:
Intent intent49 = new Intent (List.this, Info.class);
startActivity(intent49);
break;
case 50:
Intent intent50 = new Intent (List.this, Info.class);
startActivity(intent50);
break;
case 51:
Intent intent51 = new Intent (List.this, Info.class);
startActivity(intent51);
break;
case 52:
Intent intent52 = new Intent (List.this, Info.class);
startActivity(intent52);
break;
case 53:
Intent intent53 = new Intent (List.this, Info.class);
startActivity(intent53);
break;
case 54:
Intent intent54 = new Intent (List.this, Info.class);
startActivity(intent54);
break;
case 55:
Intent intent55 = new Intent (List.this, Info.class);
startActivity(intent55);
break;
case 56:
Intent intent56 = new Intent (List.this, Info.class);
startActivity(intent56);
break;
case 57:
Intent intent57 = new Intent (List.this, Info.class);
startActivity(intent57);
break;
case 58:
Intent intent58 = new Intent (List.this, Info.class);
startActivity(intent58);
break;
case 59:
Intent intent59 = new Intent (List.this, Info.class);
startActivity(intent59);
break;
case 60:
Intent intent60 = new Intent (List.this, Info.class);
startActivity(intent60);
break;
case 61:
Intent intent61 = new Intent (List.this, Info.class);
startActivity(intent61);
break;
case 62:
Intent intent62 = new Intent (List.this, Info.class);
startActivity(intent62);
break;
case 63:
Intent intent63 = new Intent (List.this, Info.class);
startActivity(intent63);
break;
case 64:
Intent intent64 = new Intent (List.this, Info.class);
startActivity(intent64);
break;
}
}
});


lvMain.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {

}

public void onNothingSelected(AdapterView<?> parent) {

}
});

lvMain.setOnScrollListener(new OnScrollListener() {
public void onScrollStateChanged(AbsListView view, int scrollState) {

}

public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {

}
});


}[/syntax]


ОТБОЙ ВОПРОСА!
Спасибо за уроки!

finberg
Сообщения: 51
Зарегистрирован: 11 мар 2013, 14:20

Re: Урок 161. Рисование. Bitmap. Memory-кэш. Picasso

Сообщение finberg » 30 ноя 2014, 13:52

Урок очень помог. Еще советую не полениться и разобраться с гугловским примером загрузки Bitmap через AsyncTask(для опыта). AsyncTask плюс LruCache. Результат радует.

pka
Сообщения: 6
Зарегистрирован: 26 ноя 2014, 23:45

Re: Урок 161. Рисование. Bitmap. Memory-кэш. Picasso

Сообщение pka » 17 мар 2015, 14:38

Как установить библиотеку picasso? В какую из папок lib копировать jar-файл?!
Нашел вразумительный ответ:
How To Use Picasso Library In Android?
Download the Picasso JAR file, If you haven’t done it already. If you are using eclipse as your development IDE, then just copy the downloaded picasso-2.4.0.jar file into your application lib folder. If you are using Android Studio IDE, then you have to add below dependency in build.gradle file.
dependencies {
...
compile "com.squareup.picasso:picasso:2.4.0"
...
}


Рассказываю русским языком для Android Studio:
1) Качаешь JAR файл от производителя (гугл знает откуда)
http://square.github.io/picasso/

2) Копируешь его в папку lib своего проекта. Почему-то через файловый обозреватель Windows Android Studio его не прицепила. Копируем так:
Слева на открытой вкладке проекта выбираем вид отображениния структуры "Project". Сюда в папку libs из файлового обозревателя Windows вставляем JAR файл (драг-энд-дропом или Ctrl+C, Ctrl+V)

3) Тут же чуть ниже открываем build.gradle, открываем и в dependencies прописываем пикасу (полагаю, имя версии должно совпадать):
dependencies {
...
compile "com.squareup.picasso:picasso:Х.Х.Х"
}

4) Только после этого в главном классе Studio предложила импортировать (Alt+Enter) пикасу (строка ниже) в проект.
import com.squareup.picasso.Picasso;

Проект скомпилировался и удачно запустился.

Ответить