我有一個由一個PNG文件組成的imageview。我想根據4個不同的事件(4個不同的PNG)更改此圖像視圖的來源。 目前我使用imageView.setImageResource更改源代碼,但這有滯後性,並導致大量Choreographer警告。 有更好的方法嗎?什麼是改變圖像視圖來源的最佳方式?
-1
A
回答
0
您可以將四個ImageView放在彼此的頂部,然後根據要顯示的內容更改可見性。在將圖片加載到內存方面不會有任何滯後,因爲它們已經在那裏了。只要確保這些照片是不是太內存密集型
代碼:
if (something)
imageview1.setVisibility(View.VISIBLE);
else if (something)
imageview2.setVisibility(View.GONE);
RelativeLayout的默認堆看法彼此的頂部。在linearlayout中設置visibility.gone也可能使視圖「堆疊」。 XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<ImageView
android:id="@+id/pic1"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/pic1"
android:visibility="visible"
android:contentDescription="default picture"/>
<ImageView
android:id="@+id/pic2"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/pic2"
android:visibility="invisible"
android:contentDescription="pic2"/>
<ImageView
android:id="@+id/pic3"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/pic3"
android:visibility="invisible"
android:contentDescription="pic3"/>
<ImageView
android:id="@+id/pic4"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/pic4"
android:visibility="invisible"
android:contentDescription="pic4"/>
</RelativeLayout>
0
您可以擁有4個imageViews而不是一個,它們已經加載了4張圖像,並調整了這些圖像必須可見的imageViews的可見性。
像這樣,您不需要在執行期間更改任何imageView的源代碼(只是可見性),並且將擺脫加載/解碼時間。
+0
但是,您將使用更多的內存。 –
1
你可以試試這個庫http://square.github.io/picasso/加載圖像
1
使用像畢加索或滑翔庫。 它們都有一個非常簡單的語法,並將在單獨的線程中加載圖像,因此在UI線程上不會發生滯後。
在
https://github.com/bumptech/glide
https://github.com/square/picasso
有更多的圖像加載庫,但這些可能是最容易使用的檢查出庫。
相關問題
- 1. 什麼是改變每個視圖的Javascript包的最佳方式?
- 2. 在WP7上不斷改變圖像的最佳性能方式是什麼?
- 3. 什麼是改變React中播放視頻的最佳方式
- 4. 什麼是在.NET中「平方」圖像的最佳方式?
- 5. 什麼是開源的最佳方式?
- 6. 改變視圖狀態的最佳做法是什麼?
- 7. 什麼將是層圖像的畫廊的最佳方式?
- 8. 製作此3視圖佈局的最佳方式是什麼?
- 9. 什麼是在Django中剖析視圖的最佳方式?
- 10. 什麼是寫/管理CouchDB視圖的最佳方式?
- 11. 處理iPad/iPhone視圖的最佳方式是什麼?
- 12. 從視圖中添加模型的最佳方式是什麼?
- 13. 什麼是分析圖像顏色(Java)的最佳方式?
- 14. 什麼是學習數字圖像處理的最佳方式?
- 15. Xamarin.Forms:創建圖像輪播的最佳方式是什麼?
- 16. 什麼是附加多個圖像的最佳方式?
- 17. 什麼是動畫很多圖像的最佳方式?
- 18. 在Java中縮放圖像的最佳方式是什麼?
- 19. 什麼是在網站上顯示圖像的最佳方式?
- 20. 什麼是存儲傳送帶圖像的最佳方式?
- 21. 在clojure中處理圖像的最佳方式是什麼?
- 22. Android - 將圖像存儲到SQLite的最佳方式是什麼?
- 23. 什麼是大量圖像編目的最佳方式?
- 24. 將MySQL用於圖像庫的最佳方式是什麼?
- 25. 什麼是不裁剪中心圖像的最佳方式?
- 26. 什麼是在android中存儲圖像的最佳方式?
- 27. 什麼是動態調整圖像大小的最佳方式?
- 28. 在Silverlight中分割圖像的最佳方式是什麼?
- 29. 什麼是使圖像透明的最佳方式?
- 30. 在MVC中刪除圖像的最佳方式是什麼?
您可以發佈您的當前代碼嗎? – Jejefcgb
你正在做UIThread的工作,沒有任何動畫。發佈您的代碼並嘗試改進這兩點。 – shkschneider
使用圖像加載器庫 –