作者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