Я немного смущен. У меня есть приложение, в котором пользователь рисует прямоугольные текстовые объекты. Я добавил несколько текстовых просмотров в относительный макет в моем xml (скажем, что у меня есть максимум 3 текстовых объекта). Объекты можно перемещать и изменять размер. Я добавил этот код для каждого TextViewandroid - как работает LayoutParams?
TextView tv=(TextView) findViewById(R.id.text1);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
System.out.println(texts.get(i).Sx+ " , "+texts.get(i).Sy+ " , "+ texts.get(i).Lx+ " , "+texts.get(i).Ly);
if(texts.get(i).Sx<=texts.get(i).Lx){
if(texts.get(i).Sy<=texts.get(i).Ly){
lp.setMargins((int)texts.get(i).Sx, (int)texts.get(i).Sy, (int)texts.get(i).Lx, (int)texts.get(i).Ly);
} else{
lp.setMargins((int)texts.get(i).Sx, (int)texts.get(i).Ly, (int)texts.get(i).Lx, (int)texts.get(i).Sy);
}
} else{
if(texts.get(i).Sy<=texts.get(i).Ly){
lp.setMargins((int)texts.get(i).Lx, (int)texts.get(i).Sy, (int)texts.get(i).Sx, (int)texts.get(i).Ly);
} else{
lp.setMargins((int)texts.get(i).Lx, (int)texts.get(i).Ly, (int)texts.get(i).Sx, (int)texts.get(i).Sy);
}
}
tv.setLayoutParams(lp);
tv.setWidth((int)(texts.get(i).width));
tv.setHeight((int)(texts.get(i).height));
tv.setTextSize(texts.get(i).textSize);
tv.setText(text.text);
tv.setTextColor(Color.WHITE);
tv.requestLayout();
Sx, Sy являются исходными воркует объекта в пикселях и Lx, Ly окончание COOS.
в XML я добавил это:
<RelativeLayout
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:id="@+id/texts" >
<TextView
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:id="@+id/text1" />
<TextView
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:id="@+id/text2" />
<TextView
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:id="@+id/text3" />
</RelativeLayout>
Это похоже на работу, как для размещения в текст в нужном месте. Но ширина и высота текста не кажутся правильными. Это проблема установки полей в пикселях? Некоторое просвещение было бы очень полезно прямо сейчас
если ваш @ text1 заполняющей родителя по вертикали и по горизонтали, то ничего не остается для другого – max4ever
это RelativeLayout, чтобы они могли быть одна над другой не может? Проблема в том, что имея только текст1, он также имеет проблемы – george