- Android getResources (). GetDrawable () устаревший API 22
- Изменить: см. Мое сообщение в блоге по этому вопросу для более полного объяснения
- getResources().getDrawable() устарел на уровне API 22. Теперь мы должны добавить тему:
- Android getResources().getDrawable() deprecated API 22
- Edit: see my blog post on the subject for a more complete explanation
- getResources().getDrawable() was deprecated in API level 22. Now we must add the theme:
- Related Posts
- android – How do I display a CalendarView in an AlertDialog?
- How do I convert a PSD design to Android xml?
- Android getResources ().getDrawable () устаревший API 22
- 10 ответов:
- редактировать: см.мой блог на эту тему для более полного объяснения
- Android studio getdrawable(int) is deprecated
- Получение объекта Drawable из строки в Android Studio
- 3 ответа
Android getResources (). GetDrawable () устаревший API 22
С новым API android API 22 getResources().getDrawable() теперь устарел. Теперь лучший подход – использовать только getDrawable() .
У вас есть некоторые опции, позволяющие справиться с этим устареванием в правильном (и будущем ) способе, в зависимости от того, какой тип выгружаемого вы загружаете:
A) чертежи с атрибутами темы
Вы получите стилизованный Drawable, как указано в разделе «Активность». Вероятно, это то, что вам нужно.
B) чертежи без атрибутов темы
Вы получите свой неоригинальный доступный старый способ. Обратите внимание: ResourcesCompat.getDrawable() не устарел!
EXTRA) с атрибутами темы из другой темы
Изменить: см. Мое сообщение в блоге по этому вопросу для более полного объяснения
Вместо этого вы должны использовать следующий код из библиотеки поддержки:
Использование этого метода эквивалентно вызову:
Начиная с API 21, вы должны использовать метод getDrawable(int, Theme) вместо getDrawable(int) , поскольку он позволяет вам извлекать объект, связанный с определенным идентификатором ресурса для данной плотности экрана / темы. Вызов устаревшего getDrawable(int) эквивалентен вызову getDrawable(int, null) .
Замените эту строку: getResources().getDrawable(R.drawable.your_drawable)
С ResourcesCompat.getDrawable(getResources(), R.drawable.your_drawable, null)
ResourcesCompat также устарел. Но вы можете использовать это:
ContextCompat.getDrawable(this, R.drawable.your_drawable) (Вот this контекст)
Для получения более подробной информации перейдите по этой ссылке: ContextCompat
getResources().getDrawable() устарел на уровне API 22. Теперь мы должны добавить тему:
GetDrawable (int id, Resources.Theme theme) (добавлен в уровень API 21)
Это пример проверки для более поздних версий:
Вы можете использовать
Это работа для меня
Просто пример того, как я исправил проблему в массиве для загрузки listView, надеюсь, что это поможет.
Источник
Android getResources().getDrawable() deprecated API 22
Posted by: admin November 4, 2017 Leave a comment
With new android API 22 getResources().getDrawable() is now deprecated.
Now the best approach is to use only getDrawable() .
You have some options to handle this deprecation the right (and future proof) way, depending on which kind of drawable you are loading:
A) drawables with theme attributes
You’ll obtain a styled Drawable as your Activity theme instructs.
This is probably what you need.
B) drawables without theme attributes
You’ll get your unstyled drawable the old way. Please note: ResourcesCompat.getDrawable() is not deprecated!
EXTRA) drawables with theme attributes from another theme
Edit: see my blog post on the subject for a more complete explanation
You should use the following code from the support library instead:
Using this method is equivalent to calling:
As of API 21, you should use the getDrawable(int, Theme) method instead of getDrawable(int) , as it allows you to fetch a drawable object associated with a particular resource ID for the given screen density/theme. Calling the deprecated getDrawable(int) method is equivalent to calling getDrawable(int, null) .
Replace this line :
getResources().getDrawable(R.drawable.your_drawable)
with ResourcesCompat.getDrawable(getResources(), R.drawable.your_drawable, null)
ResourcesCompat is also deprecated now. But you can use this:
ContextCompat.getDrawable(this, R.drawable.your_drawable) (Here this is the context)
for more details follow this link: ContextCompat
getResources().getDrawable() was deprecated in API level 22. Now we must add the theme:
This is an example:
This is an example how to validate for later versions:
that’s work for me
Just an example of how I fixed the problem in an array to load a listView, hope it helps.
Build.VERSION_CODES.LOLLIPOP should now be changed to BuildVersionCodes.Lollipop
i.e:
Related Posts
android – How do I display a CalendarView in an AlertDialog?
Questions: I’m trying to display the CalendarView in an Alert Dialog, but all that shows up is the month/year and the days of the week. These are the contents of the layout file:
How do I convert a PSD design to Android xml?
Questions: Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers. Want to improve this question? Update the question so it’s on-topic for Stack Over.
Источник
Android getResources ().getDrawable () устаревший API 22
С новым Android API 22 getResources().getDrawable() теперь устарел. Теперь лучший подход-использовать только getDrawable() .
10 ответов:
у вас есть несколько вариантов, чтобы справиться с этим прекращение права (и будущее) способ, в зависимости от того, какой вид drawable вы загружаете:
A) drawables С атрибуты тема
вы получите стилизованный Drawable, как ваша тема деятельности инструктирует. Это, наверное, то, что вам нужно.
б) drawables без тема атрибуты
вы получите ваш unstyled drawable по-старому. Пожалуйста, обратите внимание: ResourcesCompat.getDrawable() — это не устарел!
дополнительно) drawables С атрибуты темы от другое тема
редактировать: см.мой блог на эту тему для более полного объяснения
вместо этого вы должны использовать следующий код из библиотеки поддержки:
использование этого метода эквивалентно вызову:
начиная с API 21, Вы должны использовать getDrawable(int, Theme) вместо getDrawable(int) , так как он позволяет извлекать объект мешочки, связанного с определенным идентификатором ресурса для данного плотность экрана/тема. Вызов устарел getDrawable(int) метод эквивалентен вызову getDrawable(int, null) .
заменить эту строку : getResources().getDrawable(R.drawable.your_drawable)
С ResourcesCompat.getDrawable(getResources(), R.drawable.your_drawable, null)
ResourcesCompat также устарел в настоящее время. Но вы можете использовать это:
ContextCompat.getDrawable(this, R.drawable.your_drawable) (здесь this контекст)
для более подробной информации перейдите по этой ссылке: ContextCompat
Источник
Android studio getdrawable(int) is deprecated
I am taking a Udemy course and I recently upgraded my Studio version from 1.4 to 2.2. Now I have run into a problem as the course obviously is using an older version of Studio. And as I am only less than halfway through, I imagine future tutorials might use similar code, so I would like to figure out the new way of doing it. Googling the issue brings up results referring to Context.getDrawable(int) or ContextCompat.getDrawable( Context, int) or Resources.getDrawable(int, Theme). I am not quite sure how to use them. Below is the DetailsActivity.java code. At the bottom you will see getDrawable with a line through it and a hint that it is deprecated. Well after the copy and paste, the lines through the word did not get copied. So I will underline them.
package uiviewsxml.magadistudio.co m.showmeth ebio;
import android.app.Activity;
import android.content.res.Resour ces;
import android.support.v7.app.App CompatActi vity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class DetailsActivity extends Activity <
private ImageView profileImage;
private TextView bioText;
private TextView name;
private Bundle extras;
@Override
protected void onCreate(Bundle savedInstanceState) <
super.onCreate(savedInstan ceState);
setContentView(R.layout.de tails_acti vity);
profileImage = (ImageView) findViewById(R.id.detailsI mage);
bioText = (TextView) findViewById(R.id.bioTextV iew);
name = (TextView) findViewById(R.id.name);
Bundle extras = getIntent().getExtras();
if (extras != null)<
String name = extras.getString(«name»);
public void showDetails(String mName) <
profileImage.setImageDrawa ble(getRes ources().getDrawable(R.drawable.bach_col));
name.setText(mName);
bioText.setText(extras.get String(mNa me));
profileImage.setImageDrawa ble(getRes ources().getDrawable(R.drawable.mozart));
name.setText(mName);
bioText.setText(extras.get String(mNa me));
Any suggestions are welcome and thanks in advance for your time.
Источник
Получение объекта Drawable из строки в Android Studio
Я пытаюсь найти способ установить просмотр изображения через строку. Кажется, что getResources () устарел, и я не могу найти быстрый способ передать строку и загрузить изображение в мой imageView. У меня нет работающего или полезного кода для представления, я просто прошу методы для изучения. Благодарность!
3 ответа
Ответ theMatus правильный. Доступ к чертежам осуществляется через идентификатор int (т.е. R.drawable.some_image будет иметь соответствующее значение int ). Чтобы преобразовать String в такое значение, вы должны использовать Resources.getIdentifier() :
Чтобы получить доступ к Drawable , вы должны использовать getResources().getDrawable(resId) . Кстати, getResources() не устарел, хотя getDrawable(int id) технически соответствует API 22 (он по-прежнему будет работать). Если вы хотите подойти к этому правильно и обойти устаревание, вы можете использовать следующее:
С API 22 getResources () устарел. Вы можете использовать это вместо этого, он также обратно совместим, поэтому вы можете смело переходить к этому методу.
Обновление:
Также забыл упомянуть, что вы можете использовать Picasso для загрузки ваших строк (направленных на путь изображения) в просмотры изображений.
Вот небольшой пример:
Вы можете немного поискать Пикассо здесь: http://square.github.io/picasso/
Не говоря уже о том, что Android-приложение Stackoverflow также использует эту библиотеку, одну из обязательных библиотек в Android.
Собственно theMatus ответил на ваш вопрос. Этот код предназначен для устаревшей проблемы.
Источник