2011-06-08 47 views
2

我有一個Canvas,我在上面繪製文本。
(這是相當先進的,我想希望你能跟着我)android(高級)使用DrawText保存位圖畫布,但需要文本計算

請參閱下面的附加圖片。

功能是我可以在屏幕上點擊以更改文本大小。
點擊左側屏幕=更小的字體。
點擊右邊屏幕=更大的字體。
我也可以將文字移動到屏幕上。

當TEXTSIZE是確定的和我提出,我想它的文本,
然後我想保存回原來的位圖。

我使用options.inSampleSize = 4;最初加載Bitmap

具有位圖是當然更小,則原始圖像ImageView的。
需要進行某種計算。 這往往很難做到。

我有options.inSampleSize = 4位圖比率。
這是0.59,0.69的東西取決於景觀或肖像。

即時通訊,以某種方式改變新的位圖setTextSize
看起來像ImageView較小的位圖。

我能在這裏做什麼?
我有一種感覺,因爲人們永遠不知道圖像的大小。
我必須以某種方式縮放/限制加載的位圖比率爲固定比率。

然後,我需要使用百分比或東西來傳輸文本位置 到更大的圖像。
我可以這樣做,當涉及到最初 (圖片上的紅色小球)的位置。因此,文本的出發點。

但我不知道過了多久文本這樣的IM堅持這麼這麼說,並尋求建議

一種方法我試過是與比類似0.59分paint.getTextSize()。起初,這看起來像一個解決方案。但圖像比例不固定,字體大小不固定,需要其他東西。

下面是兩張圖片顯示的問題。

手機上的位圖:

enter image description here

保存的新位圖:

enter image description here

+0

這個問題很難想象。我沒有解決它,但考慮像固定字體大小的限制 – Erik 2011-06-13 21:56:27

回答

2

我不是100%清楚,我明白你的意思,但在這裏一展身手。這聽起來像你接近正確的方法。您不需要使用固定比例,而是需要計算縮放圖像以適應手機視圖的比例,然後可以按相反比例縮放文本。因此,在步驟:

  • 測量原始圖像的寬度(高度將事情做的很好,但我們只需要一維)
  • 測量縮放圖像的寬度
  • 計算比率(ratio = original/scaled
  • 讓用戶輸入自己的文本
  • 然後,您可以使用類似獲取文本大小:float paintSize = paint.getTextSize();
  • 用於渲染的最終圖像上,使用paint.setTextSize(paintSize/ratio);
+0

謝謝,最後一個答案。將在幾個小時內給它一個去。這聽起來像我還沒有嘗試:) – Erik 2011-06-15 14:44:20

+0

它工作得很好。我不能相信它再次工作,感謝。當我將每個pentext設置爲不同的大小和字體時,它甚至可以工作。 – Erik 2011-06-16 15:31:01

+0

現在我在這裏做了一個關注/新的問題,當這部分是由@kabuko解決http://stackoverflow.com/questions/6376414/android-how-to-load-save-original-size-bitmap-with-no -內存不足 – Erik 2011-06-16 17:59:12