안녕하세요. 자바코드로 레이아웃구성시 궁금한점이 몇개 있어서 질문드립니다.
아래 보이는 코드에서는 이미지뷰+텍스트뷰+이미지뷰+텍스트뷰+이미지뷰+텍스트뷰.....텍스트뷰 이렇게 한줄로 쭈욱가는데요
{[ 이미지뷰 + 텍스트뷰] + [이미지뷰 + 텍스트뷰]}
{[ 이미지뷰 + 텍스트뷰] + [이미지뷰 + 텍스트뷰]}
{[ 이미지뷰 + 텍스트뷰] + [이미지뷰 + 텍스트뷰]}
{[ 이미지뷰 + 텍스트뷰] + [이미지뷰 + 텍스트뷰]}
{[ 이미지뷰 + 텍스트뷰] + [이미지뷰 + 텍스트뷰]}
{[ 이미지뷰 + 텍스트뷰] + [이미지뷰 + 텍스트뷰]}
이렇게 구현이 가능한지 고수님들 도와주세요~~
아참 그리고...레이아웃을 위중간지점부터 위치를 잡고 싶은데 그것도 알려주세요 ㅠ.ㅠ
ScrollView scroll = new ScrollView(this);
LinearLayout root = new LinearLayout(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F);
root.setLayoutParams(params);
root.setOrientation(LinearLayout.VERTICAL);
int count = 0;
for (int i = 1; i < 10; i++) {
if (count % 2 == 0) {
TextView tv = new TextView(this);
ImageView iv = new ImageView(this);
LinearLayout.LayoutParams tvParams = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F);
root.setOrientation(LinearLayout.HORIZONTAL);
tv.setText("강남스타일\n");
tv.setLayoutParams(tvParams);
tv.setTextSize(30);
iv.setImageResource(R.drawable.btn_movie_sign);
iv.setLayoutParams(tvParams);
root.addView(iv);
root.addView(tv);
}else{
TextView tv = new TextView(this);
ImageView iv = new ImageView(this);
LinearLayout.LayoutParams tvParams2 = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F);
root.setOrientation(LinearLayout.HORIZONTAL);
tv.setLayoutParams(tvParams2);
tv.setTextSize(30);
iv.setImageResource(R.drawable.btn_movie_);
iv.setLayoutParams(tvParams2);
root.addView(iv);
root.addView(tv);
}
count++;
}
scroll.addView(root);
setContentView(scroll)




소스가 일단 이상하군요...
root레이아웃의 방향만바꿔준다고 해서 뷰가 생성되는건아닌데...
for (int i = 1; i < 10; i++) { 와 if (count % 2 == 0) { 사이에 HORIZONTAL속성을준 LinearLayout을 생성하는부분을 추가하고
레이아웃을 중간부터 잡는부분은
root레이아웃안에 공백뷰와 컨텐츠뷰를 두개 만들고 둘다 가중치(weight)를 1로 주면 될것같네요.
for문돌면서 만드는 LinearLayout을 컨텐츠뷰에 추가해주면 될것같아요.