Ⅰ android 动态设置布局宽度
例如设置一个图片宽高 关键代码:
//取控件当前的布局参数
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) imageView.getLayoutParams();
//设置宽度值
params.width = dip2px(MainActivity.this, width);
//设置高度值
params.height = dip2px(MainActivity.this, height);
//使设置好的布局参数应用到控件
imageView.setLayoutParams(params);
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
高度除了可以设置成以上固定的值,也可以设置成wrap_content或match_content
ViewGroup.LayoutParams.WRAP_CONTENT
ViewGroup.LayoutParams.MATCH_PARENT
1
2
1
2
在这里插入图片描述
xml
Ⅱ android 代码里获取XML里的布局 修改高度
第一个参数是宽,第二个是高
Ⅲ android如何根据屏幕的大小动态布局UI
DisplayMetrics dm = new DisplayMetrics();//获取当前显示的界面大小
getWindowManager().getDefaultDisplay().getMetrics(dm);
dm.widthPixels //获取当前界面的宽度
dm.heightPixels//获取当前界面的高度
再用AbsoluteLayout布局,动态添加所要显示的界面位置坐标,就搞定了
Ⅳ android自定义view如何获取父容器赐予的宽度和高度
自定义View,想要自定义给定宽和高,你要写自定义属性,然后在xml文件中指定宽高才会有效,同时当给定的宽和高的值是wrap_content 或 fill_parent 这类的,这时需要在自定义View中重写onMeasure方法,进行控件的宽高测量。
Ⅳ android编程:android中如何获取屏幕大小
java">Displaydisplay=getWindowManager().getDefaultDisplay();
Pointsize=newPoint();
display.getSize(size);
intwidth=size.x;
intheight=size.y;
Ⅵ 如何正确获取Android控件的高度
Android动态改变View控件大小的方法: 1、声明控件参数获取对象 LayoutParams lp; 2、获取控件参数: lp = 控件id.getLayoutParams(); 3、设置控件参数:如高度。 lp.height -= 10; 4:、使设置生效:控件id.setLayoutParams(lp); 例如如要把Imageview下移200px: ImageView.setPadding( ImageView.getPaddingLeft(), ImageView.getPaddingTop()+200, ImageView.getPaddingRight(), ImageView.getPaddingBottom());
Ⅶ 如何获取LinearLayout的宽度和高度
首先我们自己写一个控件,这个控件非常简单:
public class MyImageView extends ImageView {
public MyImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyImageView(Context context) {
super(context);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
System.out.println("onMeasure 我被调用了"+System.currentTimeMillis());
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
System.out.println("onDraw 我被调用了"+System.currentTimeMillis());
}
}
布局文件:
<com.test.MyImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/test" />
测试的Activity的onCreate():
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
System.out.println("执行完毕.."+System.currentTimeMillis());
}
现在我们现在来看一下结果:
说明等onCreate方法执行完了,我们定义的控件才会被度量(measure),所以我们在onCreate方法里面通过view.getHeight()获取控件的高度或者宽度肯定是0,因为它自己还没有被度量,也就是说他自己都不知道自己有多高,而你这时候去获取它的尺寸,肯定是不行的.
Ⅷ android获取布局的高高度和宽度的问题
imageback.post(newRunnable(){
run(){
intw=imageback.getWidth().
}
})
只有在View执行完measure之后,才会有width和height
Ⅸ Android获取layout的height值
建议TableRow下不要再放布局。TableRow可以设置列数或自动缩放等属性。
要获取LinearLayout的height可以给该LinearLayout设置一个id,通过id得到LinearLayout对象,就可以getHeight()取得height的值。
------------------------------------------------------------------------
我现在给LinearLayout赋了Id属性而且用findViewById获得了对象但是用getHeight()后获得值是-2。如何获得其正确值?
获取的值是跟你设置有关的,如果你的LinearLayout的height设置是fill_content或wrap_content,当然是取得-1或-2.如果你给其指定一个值,就可以获取得到。
一般上都是通过layout.getLayoutParams().height = 50;修改LinearLayout的值。也可以直接在xml文件中修改。
Ⅹ android activity 什么时候可以得到view的高度
在onCreate函数中,View还未被展开,是无法获得高度的。
所以可以对TextvView注册一个监听者:
复制代码
ViewTreeObserver vto = tv.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
heigh = appDescription.getHeight();
tv.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});