Android:以编程方式设置 ImageView layout_height

标签 android android-imageview

我的 main.xml 文件中有一个 ImageView:

<ImageView
            android:id="@+id/pageImage"
            android:layout_width="270dp"
            android:layout_height="45dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="25dp"
            android:layout_marginTop="15dp"
            android:scaleType="fitXY"
            android:src="@drawable/pageimage" />

我只需要以编程方式将 layout_height 设置为另一个值。

另外,我需要在 dp 中设置值。所以目前是 45dp,我想在我的主要 Activity 中将其更改为另一个值。

我试图弄清楚如何使用 LayoutParams 来做到这一点,但没有成功。

谢谢。

最佳答案

我想你想要这样的东西:

ImageView imgView = (ImageView) findViewById(R.id.pageImage);
imgView.getLayoutParams().height = 200;

首先我们从 XML 中获取 ImageView。然后 getLayoutParams() 为您准确获取您可以编辑的参数。您可以直接在那里设置它们。宽度等也一样。

关于单位 (sp,dp...) 我在这里找到了一些东西。希望这会有所帮助:

Use DIP, SP metrics programmatically

他们提到,所有单位都是像素。在示例中,他将 最小宽度 设置为 20sp,如下所示:

TextView tv0 = new TextView(this);
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 20, getResources().getDisplayMetrics());
tv0.setMinimumWidth(px);

附:这是我使用的完整代码。希望这是您想要的:

package com.example.testproject2;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ImageView;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView imgView = (ImageView) findViewById(R.id.pageImage);
        imgView.getLayoutParams().height = 500;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

关于Android:以编程方式设置 ImageView layout_height,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11911011/

相关文章:

android - linphone 上的 windows 构建错误

java - 如何在android中解码json emoji

android - 简单的 css 媒体查询不起作用

android - 为什么ImageView的png图像中包含背景颜色?

android - Android ImageView 和 Progressbar 实现中的图像下载

android - Xamarin - Navigation.PopModalAsync() 后重新加载页面

屏幕关闭时,Android 后台位置更新不会到来

适用于不同屏幕的 Android 图像

android - android 中文本文件的 View ,如 android 中图像的 ImageView

android - 在 ImageView 中显示存储在内部存储器中的图像?我究竟做错了什么?