Zamiast tego spróbuj ustawić swój obraz jako obraz, aby go narysować.
ImageView CanvasView = (ImageView) findViewById(R.id.fashion_pic)
Stąd można utworzyć własną bitmapę i ponownie wyciągnąć go po TouchEvent. Poniższy fragment zawiera niezbędne obejście błędu w 2.1 (lub 2.2, nie pamiętam):
public void redrawImage() {
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.fashion_pic);
Bitmap proxy = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), Config.ARGB_8888);
Canvas c = new Canvas(proxy);
//Here, we draw the background image.
c.drawBitmap(bm, new Matrix(), null);
//Here, we draw the text where the user last touched.
c.drawText("Fashion", someGlobalXvariable, someGlobalYvariable, somePaint);
CanvasView.setImageBitmap(proxy);
}
Tutaj stworzyliśmy płótna, który ma już swoje zdjęcie jako tło tekstu i farb przy zmiennej x i y. Teraz wystarczy ustawić OnTouchListener:
CanvasView.setOnTouchListener(new OnTouchListener(){
public boolean onTouch(View v, MotionEvent e) {
someGlobalXvariable = e.getX();
someGlobalYvariable = e.getY();
redrawImage();
return true;
}
});
Jak widać, słuchacz automatycznie aktualizuje swój obraz, gdy jest ona dotknęła, a tekst będzie podążać palec użytkownika. Ponieważ jako płótno używasz Bitmapy, możesz również dodać obsługę zapisywania/wczytywania obrazu, jeśli aplikacja chce mieć tego rodzaju funkcjonalność.
Edit: To może być bardziej przyjazne wydajność w przypadku przeniesienia linii 1-3 z redrawImage()
i umieścić je gdzie indziej, ustalającej te obiekty jako globalnych obiektów. Pozwolę ci się tym zajmować.
O wiele łatwiej jest uzyskać odpowiedzi na swoje pytania, jeśli faktycznie zadasz pytanie. – CommonsWare
ohh to mam, ja tylko pytam o mapę drogową – Hunt