作者the2046 (wz)
看板AndroidDev
標題[問題] --請問如何更改 View的尺寸
時間Tue Mar 19 15:42:57 2013
我的程式碼如下:
class TouchView extends View {
public TouchView(Context context) { super(context); }
@Override
public void onDraw(Canvas c) { c.drawARGB(100,0,100,50); }
}
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//[ 創造自定義物件
TouchView tv= new TouchView(this);
// ---------
// code area
// ---------
setContentView(tv);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
我在 code area嘗試(填入)過兩種方式,
1.
tv.setTop(100);
tv.setLeft(100);
tv.setBottom(200);
tv.setRight(200);
2.
RelativeLayout.LayoutParams lp= new RelativeLayout.LayoutParams(100,100);
tv.setLayoutParams(lp);
但結果都是一樣的, 我的 TouchView物件填滿整個螢幕.
想請教大家, 我該怎麼修改呢?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.13.201.26
※ 編輯: the2046 來自: 163.13.201.26 (03/19 16:26)
1F:推 KeySabre:不該setContentView 03/19 19:39
2F:→ the2046:您好, 不setContentView的話元件需如何顯示在畫面上呢? 03/19 20:16
3F:→ laiair:把 tv 貼在 R.layout.activity_main 上呢? 03/19 20:48
4F:→ Jyie:如果你在onCreate做完之後再使用方法二呢? 03/19 22:50
5F:→ the2046:laiair您好, 我想在 runtime更改尺寸, 所以你的方式 03/19 23:56
6F:→ the2046:可能不適合我 03/19 23:57
7F:→ the2046:Jyie您好, 我剛在 onStart中測試, 結果是...一樣 03/20 00:05
8F:→ Jyie:不要在Activity的生命週期裡執行試試看,記得onCreate結束後 03/20 00:42
9F:→ Jyie:注意:onCreate執行完後才去執行方法二,先試試看吧。 03/20 00:44
10F:→ the2046:Jyie, 我嘗試將 TouchView物件在 onStart中宣告, 03/20 11:29
11F:→ the2046:並將方法二移至物件的 construct執行, 但結果還是一樣 03/20 11:32
12F:→ Jyie:不要在Activity的生命週期裡執行試試看 "ORZ 03/20 12:04
13F:→ the2046:Jyie, 感謝你的熱心協助, 我問題解決囉 03/20 12:57
14F:→ the2046:原來我需要創造一個 ViewGroup, 然後再把物件給加進去 03/20 12:57
15F:→ the2046:再使用方法二就好了 ^^ 03/20 12:58