visual vista ver uso tener que porque por para pantallas pantalla muy mejor malo las fondo dela debemos daños daño dañan computadora color cerca celular bueno brillo bajar alto afecta android bitmap textview position

android - vista - porque no debemos ver muy cerca el monitor



Obtención de la posición final de la vista de texto y de la imagen con respecto a la parte superior de la pantalla (2)

Tengo un mapa de bits y debajo hay una línea de tiempo.

Como ejemplo, considere el diseño del lado derecho de la FIGURA .

Todas las líneas de tiempo inferiores (1, 2, 3 ...) están a la misma altura desde la parte superior.

La línea de tiempo es una vista de texto que tiene una altura y un ancho de diseño fijo, ya que se define en xml, como la línea de tiempo 1 se define como:

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/HView" android:layout_marginLeft="18dp" android:layout_marginTop="345dp" android:textSize="14sp" android:text="1" android:textColor="#000000" />

Sin embargo, la altura y el ancho del mapa de bits pueden variar a medida que se hace programáticamente.

Entonces, en ciertos casos, la altura del mapa de bits aumenta lo suficiente como para superponerse a la línea de tiempo. En otras palabras, la posición vertical del mapa de bits aumenta con respecto a la posición vertical de la línea de tiempo.

Quiero tener:

1) la posición vertical final del mapa de bits con respecto a la parte superior de la pantalla.

2) la posición vertical final de la línea de tiempo con respecto a la parte superior de la pantalla.

Traté de hacer lo siguiente:

TextView bottomTimeLine = (TextView) view.findViewById(R.id.textView1); bottomTimeLine.getHeight(); //returns 0. bottomTimeLine.getBottom(); //returns 0. ImageView img = new ImageView(getActivity()); img.setImageDrawable(getResources().getDrawable(R.drawable.disp_bg)); img.getHeight(); //returns 0. img.getBottom(); //returns 0.

Como se ve en el código, ambos métodos, getHeight() y getBottom() devuelven height como 0.

¿Cómo obtener la altura (ver la posición final) de ambos con respecto a la parte superior de la pantalla de la celda?


Así es como se puede hacer:

final TextView bottomTimeLine = (TextView) view.findViewById(R.id.textView1); final int[] timelineCoord = new int[2]; final int[] imgCoord = new int[2]; ViewTreeObserver vto = bottomTimeLine.getViewTreeObserver(); vto.addOnGlobalLayoutListener((new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { bottomTimeLine.getLocationOnScreen(timelineCoord); Log.d(" bottomTimeLine H ", ""+timelineCoord[1]); timelineHeight = timelineCoord[1]; } })); ViewTreeObserver vt1 = img.getViewTreeObserver(); vt1.addOnGlobalLayoutListener((new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { img.getLocationOnScreen(imgCoord); imgHeight = imgCoord[1] + img.getHeight(); Log.d("Img H ", ""+imgHeight); if(imgHeight < timelineHeight) { int heightDiff = imgHeight - timelineHeight ; heightDiff = heightDiff + 3; img.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, heightDiff)); } } }));


Espero que esto ayude

@Anular

void protegido onMeasure (int anchoMeasureSpec, int heightMeasureSpec) {super.onMeasure (widthMeasureSpec, heightMeasureSpec);

int parentWidth = MeasureSpec.getSize(widthMeasureSpec); int parentHeight = MeasureSpec.getSize(heightMeasureSpec); this.setMeasuredDimension( parentWidth / 2, parentHeight);

}