2016-11-07 7 views
1

Я хочу изменить высоту и ширину изображения на основе размера выделенного изображения программно? У меня есть два типа изображений: один горизонтальный, а другой вертикальный. По умолчанию я написал свой xml-код для вертикальных изображений, но хочу изменить высоту и ширину изображения для горизонтальных изображений по java-коду. как это сделать?Изменение высоты и ширины изображения по программному признаку на основе рисуемых изображений

мой XML-код

<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" /> 

и мой 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=300; 
     imgtrans.requestLayout(); 

    } 

ответ

0

Установить два изображения для горизонтального и другой является вертикально вытащить. затем найти ориентацию экрана на основе установленного изображения

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

Используйте ViewGroup.LayoutParams.MATCH_PARENT в 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(); 
} 
+0

isHori (d) Я не мог найти это в android. можете ли вы рассказать мне, как достичь этого? – user7125006

+0

@ user7125006 Извините, мой английский настолько беден, я не могу четко выразить. Поэтому я изменил свой ответ. – sunhang