2011-09-29 13 views
5

Ekranda bir FrameLayout üzerinde kamera görünümünü gösteren bir uygulama var. Ekran sabit LandScape modunda.Ekranda dinamik olarak bir metin görünümü nasıl taşınır? (framelayout)

Ekranın dinamik olarak belirlenmiş koordinatlarına sahip bir metin yazmam gerekiyor. Koordinatlar, yüzdeler olarak belirlenir, örneğin:

ekran görüntüsünü, ekranın x =% 80'i olan & y = ekranın% 20'si olarak yazın. Koorinatlarda metin görünümünü yazın x = ekranın% 35'i & y = ekranın% 55'i.

nasıl yapmalı? ben zaten ben sadece frameLayout

kod örnekleri istenilen pozisyona TextView yazmak için bunları kullanmak ben bu ile çalıştı ama, işler TextView değil

bekliyoruz nasıl bilmek gerekir, yüzdelerine sahip hareket etmez:

TextView poi..... etc etc 
poi.setLayoutParams(new LayoutParams((int)(w*(xCoordPercent/100)), h/2)); 

sayesinde bu yardımcı olabilir

+1

Yapmaya çalıştığınız şey bir TextView'i canlandırmaktır. Durum böyleyse, bu konuyla ilgili öğreticilere bir göz atmalısınız, bu tür temel hareketler için oldukça basittir ve burada daha fazla yanıt beklerken size fikir verebilir. – Sephy

+0

hayır hayır, onu canlandırmak istemiyorum, sadece textivew'i soldan sağa, aşağıdan aşağıya, dinamik olarak oluşturulmuş koordinatlara bağlı olarak taşımak istiyorum. Daha sonra bir görüntü kullanacağım, ama şimdi – NullPointerException

cevap

3
MarginLayoutParams params=(MarginLayoutParams)poi.getLayoutParams(); 
params.leftMargin=80; 
//here 100 means 100px,not 80% of the width of the parent view 
//you may need a calculation to convert the percentage to pixels. 
params.topMargin=50; 
poi.setLayoutParams(params); 

.

+0

bir metin görüşümüzü karıştırmam gerekiyor. Ekranın sol üst köşesinde POI hala duruyor. Pencereyi yeniden boyamak zorunda mıyım? FrameLayout da bir kamera görüşüne sahiptir. Yanlış olan ne? im iz – NullPointerException

+0

metin görünümünü göreli bir düzende koyarsanız çalışır – NullPointerException

İlgili konular