我在我的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,我想在我的主要活动改变为另一个值。
我试图找出如何使用的LayoutParams做到这一点,但我不能成功。
谢谢。
我想你想是这样的:
ImageView imgView = (ImageView) findViewById(R.id.pageImage);
imgView.getLayoutParams().height = 200;
所以,首先我们从XML的ImageView的。 然后getLayoutParams()让你正是你可以编辑则PARAMS。 你可以将它们直接出现。 同为宽度等
关于单元(SP,DP ...)我发现这里的东西。 希望这可以帮助:
使用DIP,SP指标编程
在那里,他们提到,所有的单位是像素。 在这个例子中,他将这样20SP的最小宽度 :
TextView tv0 = new TextView(this);
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 20, getResources().getDisplayMetrics());
tv0.setMinimumWidth(px);
PS下面是完整的代码,我使用。 希望这是你想要什么:
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;
}
}
你可以这样做:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width_physical_pixels, height_physical_pixels);
imageView.setLayoutParams(layoutParams);
但在参数需要一个像素,所以你将不得不使用公式像素转换为DP,比如你可以用它来转换:
float scale = getBaseContext().getResources().getDisplayMetrics().density;
px = dp_that_you_want * (scale / 160);
将所有内容放在一起:
//Get screen density to use in the formula.
float scale = getBaseContext().getResources().getDisplayMetrics().density;
px = dp_that_you_want * (scale / 160);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(px, px);
imageView.setLayoutParams(layoutParams);
我不知道这是不是你正在寻找什么,或者它是否会工作,所以让我知道如果这样做。