Ⅰ 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);
}
});