[問題] --請問如何更改 View的尺寸

看板AndroidDev作者 (wz)時間13年前 (2013/03/19 15:42), 編輯推噓1(1014)
留言15則, 4人參與, 最新討論串1/1
我的程式碼如下: 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)

03/19 19:39, , 1F
不該setContentView
03/19 19:39, 1F

03/19 20:16, , 2F
您好, 不setContentView的話元件需如何顯示在畫面上呢?
03/19 20:16, 2F

03/19 20:48, , 3F
把 tv 貼在 R.layout.activity_main 上呢?
03/19 20:48, 3F

03/19 22:50, , 4F
如果你在onCreate做完之後再使用方法二呢?
03/19 22:50, 4F

03/19 23:56, , 5F
laiair您好, 我想在 runtime更改尺寸, 所以你的方式
03/19 23:56, 5F

03/19 23:57, , 6F
可能不適合我
03/19 23:57, 6F

03/20 00:05, , 7F
Jyie您好, 我剛在 onStart中測試, 結果是...一樣
03/20 00:05, 7F

03/20 00:42, , 8F
不要在Activity的生命週期裡執行試試看,記得onCreate結束後
03/20 00:42, 8F

03/20 00:44, , 9F
注意:onCreate執行完後才去執行方法二,先試試看吧。
03/20 00:44, 9F

03/20 11:29, , 10F
Jyie, 我嘗試將 TouchView物件在 onStart中宣告,
03/20 11:29, 10F

03/20 11:32, , 11F
並將方法二移至物件的 construct執行, 但結果還是一樣
03/20 11:32, 11F

03/20 12:04, , 12F
不要在Activity的生命週期裡執行試試看 "ORZ
03/20 12:04, 12F

03/20 12:57, , 13F
Jyie, 感謝你的熱心協助, 我問題解決囉
03/20 12:57, 13F

03/20 12:57, , 14F
原來我需要創造一個 ViewGroup, 然後再把物件給加進去
03/20 12:57, 14F

03/20 12:58, , 15F
再使用方法二就好了 ^^
03/20 12:58, 15F
文章代碼(AID): #1HI1S3YM (AndroidDev)