1. 程式人生 > >Imageloader四種圖片顯示(圓形,淡入,圓角,修飾)使用

Imageloader四種圖片顯示(圓形,淡入,圓角,修飾)使用

這一長篇我們來看這四種圖片顯示在程式碼中如何使用,以開源元件中的例子為準。 先看一組圓形和淡入動畫的效果
 這個淡入為了能看清效果我的時間改成了10s; 圓角的效果圖:   1.圓形圖片的使用
  1. options =newDisplayImageOptions.Builder()
  2. .showImageOnLoading(R.drawable.ic_stub)
  3. .showImageForEmptyUri(R.drawable.ic_empty)
  4. .showImageOnFail(R.drawable.ic_error)
  5. .cacheInMemory(true)
  6. .cacheOnDisk(true
    )
  7. .considerExifParams(true)
  8. .displayer(newCircleBitmapDisplayer(Color.WHITE,5))
  9. .build();
其它的引數就網上的說明比較多,只說下關於圓圖片: displayer(newCircleBitmapDisplayer(Color.WHITE,5)) 圓邊為白色5個畫素。然後呼叫下面的語句
  1. ImageLoader.getInstance().displayImage(url, imageView, options);
如果要在圓形的圖片上加一個淡入和效果
  1. privateImageLoadingListener
    animateFirstListener =newAnimateFirstDisplayListener();
  2. ImageLoader.getInstance().displayImage(url, imageView, options, animateFirstListener);
  3. privatestaticclassAnimateFirstDisplayListenerextendsSimpleImageLoadingListener{
  4. staticfinalList<String> displayedImages =Collections.synchronizedList(new
    LinkedList<String>());
  5. @Override
  6. publicvoid onLoadingComplete(String imageUri,View view,Bitmap loadedImage){
  7. if(loadedImage !=null){
  8. ImageView imageView =(ImageView) view;
  9. boolean firstDisplay =!displayedImages.contains(imageUri);
  10. if(firstDisplay){
  11. FadeInBitmapDisplayer.animate(imageView,500);
  12. displayedImages.add(imageUri);
  13. }
  14. }
  15. }
  16. }
解釋一下動畫的監聽 onLoadingComplete圖片載入完成的方法 在方法裡面先判斷圖片不為空,然後判斷圖片url不存在集合中是第一次顯示 ,然後呼叫FadeInBitmapDisplayer.animate(imageView,500); 具體的實現過程可以看上一片程式碼分析中的FadeInBitmapDisplayer類。動畫顯示之後氫這個圖加放已經顯示的集合中 2.圓角圖片的顯示
  1. options =newDisplayImageOptions.Builder()
  2. .showImageOnLoading(R.drawable.ic_stub)
  3. .showImageForEmptyUri(R.drawable.ic_empty)
  4. .showImageOnFail(R.drawable.ic_error)
  5. .cacheInMemory(true)
  6. .cacheOnDisk(true)
  7. .considerExifParams(true)
  8. .bitmapConfig(Bitmap.Config.RGB_565)
  9. .displayer(newRoundedBitmapDisplayer(20))
  10. .build();
  11.     ImageLoader.getInstance().displayImage(url, imageViewoptions);
和圓形的過種一樣把CircleBitmapDisplayer(Color.WHITE,5)換成newRoundedBitmapDisplayer(20),圓角的半徑20畫素 3.圖片修飾 我們先看一組正常情況的圖片 下面看一下修飾過的圖
除去不一們的圓角還有一個地方,仔細發現哦
  1. options =newDisplayImageOptions.Builder()
  2. .showImageOnLoading(R.drawable.ic_stub)
  3. .showImageForEmptyUri(R.drawable.ic_empty)
  4. .showImageOnFail(R.drawable.ic_error)
  5. .cacheInMemory(true)
  6. .cacheOnDisk(true)
  7. .considerExifParams(true)
  8. .bitmapConfig(Bitmap.Config.RGB_565)
  9. .displayer(newRoundedVignetteBitmapDisplayer(20,20))
  10. .build();
  11. }
使用和圓角的沒有區別。實現有理請對照上一片RoundedVignetteBitmapDisplayer類的分析。 如果我們要使用多效果疊加就可以對控制元件中的類進行重寫,然後使用自己的類進行顯示。 如果寫的的有什麼不對的地請指出,共同進步。