2011-01-28 41 views
11

Có thể ai đó vui lòng cung cấp mã để hiển thị hình ảnh GIF trong chế độ xem web (tôi đã có thể hiển thị cùng một hoạt ảnh bằng khung hình ảnh png) Bây giờ tôi muốn có cách hiển thị hình ảnh GIF thay vì tải các khung hình hoặc vẽ các hình ảnh một lần nữa và một lần nữa!Hiển thị ảnh GIF bằng cách sử dụng WebView

Trả lời

15

GIF được hỗ trợ theo quan điểm của web.

viết một file html như sau:

<html> 
<body bgcolor="white"> 
    <table width="100%" height="100%"> 
     <tr> 
      <td align="center" valign="center"> 
       <font color="gray">Some text you display</font> 
       <br/> 
       <br/> 
       <br/> 
       <br/> 
       <br/> 
       <img src="yourGIF.gif"> 
      </td> 
     </tr> 
    </table> 
</body> 

và lưu nó trong "tài sản" thư mục của bạn ứng dụng cũng lưu trữ gif của bạn trong cùng một thư mục. Và đừng sau để hiển thị nó:

webview.loadUrl("file:///android_asset/your_html.html"); 
+0

Tôi đã làm tương tự như bạn đã nói .. GIF được nhìn thấy rõ ràng trong cửa sổ không gian làm việc của Eclipse trong khi .. chỉ khung đầu tiên của GIF được hiển thị trong màn hình mô phỏng (#no hoạt hình!) – msumaithri

+0

điều tương tự cũng hoạt động trong ứng dụng Email của Android. Một spinner quay trước khi tin nhắn được tải. Có điều gì để đặt cho chế độ xem web không? – Kantesh

+0

Nó giúp để hiển thị gif nhưng nó không làm cho gif (hoặc webview) sửa chữa trong bố trí tuyến tính được phân bổ cho nó thay vì nếu hình ảnh là lager hơn kích thước được phân bổ cho nó. webview xuất hiện với cuộn. Vui lòng đề xuất một cách để tránh di chuyển và sửa webview trong bố cục tuyến tính. –

1

có điều này là quyền mà gif không hỗ trợ trong android Một giải pháp khác Như TRonZ WebView hỗ trợ gif, chỉ make a WebViewload the URL of the gif image và bạn đã làm xong

+1

Ngay cả trong 2.3 GIF không được hỗ trợ? – msumaithri

+0

@msumaithri cảm ơn –

+0

Hey nhưng WebView hỗ trợ gif, chỉ cần tạo một WebView và tải URL của hình ảnh gif và bạn đã hoàn tất. – TRonZ

22

Hãy thử điều này ..

WebView wv = (WebView) findViewById(R.id.webView1); 
wv.loadUrl("file:///android_asset/anim5.gif"); 

Đơn giản chỉ cần gọi hình ảnh GIF của bạn từ tài sản như thế này ..

+2

Đơn giản và chính xác. –

+0

Điều này sẽ hiển thị gif. Tuy nhiên, tốn một chút thời gian để hiển thị GIF. Làm thế nào tôi có thể hiển thị GIF ngay lập tức? – mrmoment

+1

Đâu là nơi tốt để đặt thư mục 'android_asset' trong dự án của tôi? Cú pháp 'file: /// android_asset' dẫn tôi tin rằng' android_asset' nằm trong thư mục gốc của hệ thống tập tin của bạn, nhưng điều đó sẽ không hoạt động nếu tôi muốn kiểm tra tài sản cho repo của tôi ... – dinosaur

0

Bạn không cần bất kỳ mã HTML ... Chỉ cần sử dụng dòng này

webViewControl.LoadUrl("file://" + pathToTheGifFile); 

Nó hoạt động cho tôi.

1

Đây là giải pháp tốt nhất cho GIF trong Android:

Chèn phụ thuộc sau vào tệp build.gradle của dự án của bạn.

dependencies { 
    compile 'pl.droidsonroids.gif:android-gif-drawable:1.1.+' 
} 

sau đó

The simplest way is to use GifImageView 

<pl.droidsonroids.gif.GifImageView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:src="@drawable/src_anim" 
    android:background="@drawable/bg_anim" 
    /> 

Nếu drawables tuyên bố bởi android: src và/hoặc android: Backgroun d là các tập tin GIF sau đó họ sẽ tự động công nhận là GifDrawables và hoạt hình. Nếu được đưa ra không phải là một GIF thì đề cập đến lượt xem hoạt động giống như ImageView và ImageButton đơn giản.

https://github.com/koral--/android-gif-drawable

+0

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên đưa vào các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ đánh giá/chất lượng thấp-bài viết/10590628) – Marged

+0

Nó đã được sửa – Spl2nky

0

tải gif trong một webview và phù hợp với nó vào màn hình điện thoại mà không cần bất kỳ mã HTML ... Hãy thử mã này

mWebView = ((CustomWebView)mRootView.findViewById(R.id.webview)); 
mWebView.loadUrl("file:///android_asset/file.gif"); 
mWebView.getSettings().setLoadWithOverviewMode(true); 
mWebView.getSettings().setUseWideViewPort(true); 
Các vấn đề liên quan