基于可绘制图像以编程方式更改图像视图高度和宽度

时间:2016-11-07 06:44:25

标签: android image android-imageview

我想根据可绘制的图像大小更改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();

    }

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:0)

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

$progress_file_path = './data/progress.txt';

if (file_exists($progress_file_path) && count(file($progress_file_path)) > 0) {
    $scanned = file($progress_file_path);

    $last = end($scanned);
    $end = $limit + count($scanned);
} else {
    $last = 'unset'; 
    $end = $limit;
}