2015-04-08 3 views
0

В моем приложении у меня есть просмотр списка, и каждый элемент в списке содержит изображение. Изображение загружается из растрового изображения с использованиемAndroid imageview мерцает

imageView.setImageBitmap(bitmap); 

Для обработки параллелизма я использую метод, описанный в следующей официальной документации.

Processing Bitmaps Off the UI Thread

На высоких устройствах плотности вид изображение мерцает. Любое возможное решение этой проблемы?

, когда я использую ручку параллелизм тогда только мерцающий происходит, и когда я использую AsyncTask только тогда нет мерцающих

+0

Попробуйте не использовать WeakReference. –

+0

Я не использую слабую ссылку для просмотра изображений, но я использую ее для задачи битвы async private final WeakReference bitmapWorkerTaskReference; – Jyothish

ответ

1

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

Просто используйте как это (от UI Thread):

В ListView, используйте это в GetView(), он обрабатывает кэширование и еще ..

Picasso.with(context) 
.load(url) 
.into(imageView); 

http://square.github.io/picasso/

или

ImageView tre = (ImageView) findViewById(R.id.imageview); 
String URL = "http://www...sdsdsd ..."; 
mChart.setTag(URL); 
new DownloadImage.execute(tre); 

    public class DownloadImage extends AsyncTask<ImageView, Void,Bitmap> { 

    ImageView imageView = null; 

    @Override 
    protected Bitmap doInBackground(ImageView... imageViews) { 
    this.imageView = imageViews[0]; 
    return download_Image((String)imageView.getTag()); 
    } 

@Override 
protected void onPostExecute(Bitmap result) { 
imageView.setImageBitmap(result); 
    } 


    private Bitmap download_Image(String url) { 
    Bitmap bmp =null; 
    try{ 
     URL ulrn = new URL(url); 
     HttpURLConnection con = (HttpURLConnection)ulrn.openConnection(); 
     InputStream is = con.getInputStream(); 
     bmp = BitmapFactory.decodeStream(is); 
     if (null != bmp) 
      return bmp; 

     }catch(Exception e){} 
    return bmp; 
    } 
Смежные вопросы