を使用してレイアウトするための複雑な時刻表がありますTextViews
。絶対レイアウトが減価償却されているようです。今ではそれが「悪い習慣」であることを知っていますが、画面サイズ/密度などに関連してすべてを調整する整形式の画面メトリッククラスがあります。
絶対レイアウトを使用できない場合、どうすればTextView
それを上下に配置したいのかを判断できますか?(絶対位置を使用するHTMLのように)?
XMLを使用せずにプログラムでこれを実行したいと思います。WebView
これは可能ですか、それともまたはキャンバスを使用する必要がありますか?
編集::
void positionView (TextView v, int x, int y, int w, int h){
final ViewGroup.MarginLayoutParams lpt = new ViewGroup.MarginLayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);//v.getLayoutParams();
//lpt.setMargins(x,y,x+w,y+h);
lpt.height=h;
lpt.width=w;
lpt.topMargin=y;
lpt.leftMargin=x;
v.setLayoutParams(lpt);
}
これは私がこのクイックテストコードから呼び出しているメソッドです:
ScrollView dayViewContainer = new ScrollView(context);
dayViewContainer.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
FrameLayout dayView = new FrameLayout(context);
dayView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
dayView.setBackgroundColor(0xFF00FF00)
int lineHeight = 60;
for(int i =0;i<11 ;i++){
TextView hourView = new TextView(context);
hourView.setText(""+i+":00");
BrScreenMetrics.getScreenWidthPX()-20, lineHeight);
positionView(hourView, 50, i*lineHeight, BrScreenMetrics.getScreenWidthPX()-20, lineHeight);
dayView.addView(hourView);
}
dayViewContainer.addView(dayView);
addView(dayViewContainer);