程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 安卓-請問在Android裡面怎麼實現圖文混排

安卓-請問在Android裡面怎麼實現圖文混排

編輯:編程解疑
請問在Android裡面怎麼實現圖文混排

在Android中怎麼多張照片和段落文字混合排版,類似於豆瓣等這些應用。

最佳回答:


**1. 只用一個TextView來實現:在獲取到數據時需要對數據進行分析,分析出文本裡的圖片元素,然後根據圖片元素的大小動態決定圖片TextView每一行的字符數和行高(主要是在OnDraw裡來實現,行高其實可以是固定的),然後根據行高和行數來得到圖片顯示區域的高度(因為我們需要對圖片進行垂直方向上的居中)。然後用 (行高*行數 - 1個行間距 - 圖片高度 )/2可以得到圖片顯示的Y方向上的坐標。需要注意的是行高是行間距與字符高度之和。

2. 使用webview來實現。這個感覺應該是最簡單的,但有點大材小用。另外,項目本身的數據因為是自定義格式,需要做一個數據適配器來適配,效率也不高。再說如果需要擴展正文顯示,學習的成本以及實現的難易程序相對來說也不容易。

3. 通過ListView來實現圖文混排,這個我覺得是最靈活的方案。大致想法如下:每一行文本為一個TextView,每一個TextView的字符數可以通過獲取數據的邏輯來得到(同方案1),位圖則使用一個固定大小的ImageView來顯示(比如固定為200px*200px),這樣就很容易計算單個TextView中容納的字符數。當用戶點該圖片時,彈出一個對話框,對圖片的原始大小來顯示,或者在彈出對話框中實現圖片的放大,縮小等功能。各個TextView以及ImageView可以通過布局來讓ListView自己去管理。

4. 這點是對方案3的補充,如果我們不使用固定大小圖片的話,其實我們也可以使用動態布局來搞定。動態布局的大小根據圖片的大小其實是可以算出來的,這點是沒有問題的。**

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved