/ / Cambie la altura y el ancho de la vista de la imagen mediante programación basada en imágenes dibujables: android, image, android-imageview

Cambie la altura y el ancho de la vista de la imagen de forma programática en función de las imágenes dibujables: android, image, android-imageview

Quiero cambiar la altura y el ancho de Imageviewbasado en el tamaño de imagen dibujable programáticamente Tengo dos tipos de imágenes, una es horizontal y la otra vertical. Por defecto, he escrito mi código xml para imágenes verticales, pero quiero cambiar la altura y el ancho de la vista de imagen para imágenes horizontales con código java. como hacer esto ?

mi código xml es

<RelativeLayout
android:paddingTop="47dp"
android:paddingBottom="48dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:id="@+id/flipcardWrapper">

<ImageView
android:orientation="horizontal"
android:layout_width="365dp"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:id="@+id/imgtrans"
android:background="@android:color/transparent" />

y mi código java para cambiar la altura y el ancho de la vista de la imagen es

imgview = (ImageView) findViewById(R.id.imgtrans);
Drawable d = getResources().getDrawable(R.drawable.image1);
int h = d.getIntrinsicHeight();
int w = d.getIntrinsicWidth();



if(d.getIntrinsicHeight()==797 && d.getIntrinsicWidth()==1218)
{
imgtrans.getLayoutParams().width=300;
imgtrans.requestLayout();

}

Respuestas

0 para la respuesta № 1

Establezca dos imágenes para horizontal y otra es vertical en dibujable. Luego encuentre la orientación de la pantalla basada en la imagen establecida.

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
Drawable d = getResources().getDrawable(R.drawable.imagehorizontal);
//set your other properties
}

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
Drawable d = getResources().getDrawable(R.drawable.imagevertical);
//set your other properties
}

0 para la respuesta № 2

Use ViewGroup.LayoutParams.MATCH_PARENT en el código java.

imgview = (ImageView) findViewById(R.id.imgtrans);
Drawable d = getResources().getDrawable(R.drawable.image1);
int h = d.getIntrinsicHeight();
int w = d.getIntrinsicWidth();



if(d.getIntrinsicHeight()==797 && d.getIntrinsicWidth()==1218)
{
imgtrans.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
imgtrans.getLayoutParams().height = someValue;
imgtrans.requestLayout();
}