2012-01-21 14 views
18

pierwszy post tutaj =) Szukałem tej odpowiedzi i nie byłem w stanie jej znaleźć. Co chcę zrobić, to trochę tekstu, a następnie dodać obraz, a następnie resztę tekstu. Na przykład:Android Dodaj zdjęcie do tekstu (w widoku tekstu)?

       ____ 
          | | 
Hi there, this is the photo |___|, hope you like it.. 

szukałem ale wszystko, co mogę znaleźć to dodać tekst do obrazu lub dodaj do obrazu View, i nie sądzę, że to, co chcę, ponieważ aplikacja jest głównie tekst, ale z obrazy na nim.

Moje pytanie brzmi: Jak dodać obraz do tekstu?

dzięki


UPDATE: użyłem porady R.daneel.olivaw dał mi i to działało miły =)

Ale mam problem. powiedzmy, że mam: "a b c", w którym ustawiam pozycję b jako opcyjną. Ale jeśli spróbuję usunąć tekst i skasować b, następnym razem, gdy coś napiszę, stanie się obrazem, który użyłem w spanable. Jak mogę to poprawić? Any1one ma jakąkolwiek radę? thanks =)

Odpowiedz

25

Chyba szukasz Spannable interfejs, za pomocą tego cię może dodawać obrazy do widoku tekstowego.

To może pomóc link.

enter image description here

+0

to szwy na work.awsome, będę próbować go i zobacz czy robi to co chcę =) – user1162299

+0

Witam, Czy to okazują być przydatnym dla ciebie? –

+0

tak, całkowicie pracował. Dzięki. Ale mam problem. Powiedzmy, że mam: "a b c", w którym ustawiam pozycję b jako opcyjną. ale jeśli spróbuję usunąć tekst i skasować b, następnym razem, gdy coś napiszę, stanie się obrazem, który użyłem w spanable. Jak mogę to poprawić? – user1162299

0

jak wiem, nie ma sposobu, aby to zrobić.

, ale gdy używasz przeglądarki i generowanego html, możesz zrobić symulację.

generowanie html ze swojej zawartości i ładowanie go do widoku strony internetowej, ustawienie ustawień widoku strony internetowej bez kontroli powiększenia.

2

Najlepsza opcja to utworzenie własnego widoku i zastąpienie metody onDraw() za pomocą canvas.drawText() dla tekstu i canvas.drawBitmap() dla obrazów.

Zobacz doc kanwie: http://developer.android.com/reference/android/graphics/Canvas.html

Oto przykład, który narysować jakiś tekst na środku ekranu:

public class OverlayView extends View { 

public OverlayView(final Context context) { 
    super(context); 
} 

/** 
* Draw camera target. 
*/ 
@Override 
protected void onDraw(final Canvas canvas) { 

    // view size 
    int width = getWidth(); 
    int height = getHeight(); 

    float square_side = height - width * 0.8f; // size of the target square 

    Paint paint = new Paint(); 
    paint.setAntiAlias(true); 
    paint.setStyle(Paint.Style.FILL); 

    // text size is 5% of the screen height 
    paint.setTextSize(height * 0.05f); 

    // draw message depending of its width 
    String message = getResources().getString(R.string.photo_target_text); 

    float message_width = paint.measureText(message); 

    paint.setColor(getResources().getColor(R.color.color_foreground)); 
    canvas.drawText(message, (width - message_width)/2, 
      (height - square_side)/4, paint); 

    super.onDraw(canvas); 
} 

} 
0

Można to zrobić z obrazu getter: Html.ImageGetter

Będziesz musiał używać znaczników HTML dla każdego obrazu.

0
< string name="text" > "Hi there, this is the photo [img src=img.jpge/] , hope you like it. </string> 

Dodaj tę na swoim String i będzie działać

Powiązane problemy