2016-11-07 39 views
1

我想要以編程方式基於可繪製圖像大小 更改Imageview高度和寬度?我有兩種類型的圖像,一種是水平的,另一種是垂直的。默認情況下,我已經爲垂直圖像編寫了我的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

在java代碼中使用ViewGroup.LayoutParams.MATCH_PARENT。

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

相關問題