2010-12-11 18 views
9

Ben android 2.Xandroid n sürükle metin görünümü sürükleyin

görüntüde metin görünümü n sürükle sürüklemek istiyorum, aşağıdaki resme bakın. alt text

Burada "Mavi" rengi ViewGrop'u temsil eder, "Beyaz" ImageView'dur ve görüntü ImageView'da ayarlanır. "Fashion" yazılı metin bir TextView.This yapıyı nasıl uygulamış olduğumu budur. Şimdi kullanıcının TextView'i seçmesine izin vermek ve onu görüntünün herhangi bir bölümüne sürüklemek ve sonra istenen konumdaki görüntü üzerine bırakmak istiyorum.

Şu anda bir referans için şu url'ye başvurmaya çalıştım ancak Button yerine TextView kullandığımda her şey anormalleşiyor.

link text

kimse bana yol haritası veya örnek halletmek için verebilir misiniz?

+0

Soru soruyorsanız, sorularınız için yanıt almak çok daha kolaydır. – CommonsWare

+0

ohh anladım, sadece bir yol haritası istiyorum – Hunt

cevap

8

Bunun yerine, ImageView'ınızı çizim için bir tuval olarak almayı deneyin.

ImageView CanvasView = (ImageView) findViewById(R.id.fashion_pic)

Buradan kendi Bitmap oluşturabilir ve bir TouchEvent sonra yeniden çizin. Aşağıdaki Snippet'iniz gerekli çalışmaları-etrafında bir hata için 2.1 de içerdiği (veya 2.2, hatırlayamıyorum): Burada

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); 
} 

, zaten arka planı ve boyalar metin olarak resminizi olan bir tuval oluşturduk x ve y değişkeninde. Gördüğünüz gibi

CanvasView.setOnTouchListener(new OnTouchListener(){ 

    public boolean onTouch(View v, MotionEvent e) { 

     someGlobalXvariable = e.getX(); 
     someGlobalYvariable = e.getY(); 
     redrawImage(); 
     return true; 
    } 
}); 

, dinleyici otomatik dokunulduğunda görüntünüzü günceller ve metin kullanıcının parmağını takip edecek: Şimdi, bir OnTouchListener ayarlayın. Tuvaliniz olarak bir Bitmap kullandığınızdan, uygulamanızın bu tür işlevlere sahip olmak istiyorsa bir görüntüyü kaydetme/yükleme için destek de ekleyebilirsiniz.

Düzelt: Satırları 1-3 redrawImage()'dan taşıyorsanız ve başka nesnelere yerleştirdiğinizde, bu nesneleri genel nesneler olarak ayarlayarak daha fazla performansa sahip olabilirsiniz. Bununla uğraşmana izin vereceğim.

+0

Bitmap sürekli olarak buraya çizilirken herhangi bir şeyi geri dönüştürmek zorunda mıyım? – Hunt

+0

, TextDrawText yerine TextView kullanmak mümkündür, çünkü Text'in kalitesi drawText ile karşılaştırıldığında çok daha iyi. – Hunt

+1

Soru 1: Düzenlenmiş cevabımı gör, bu nesneleri başka bir yere taşımalısın. Soru 2: Canvas.drawText() ile tam olarak aynı görünüme ulaşabilirsiniz. Paint.setAntialiasing() işlevini kullanmayı deneyin. – Snailer

İlgili konular