ScrollView (자식이 인 LinearLayout)이 포함 된 XML보기가 있습니다.Progammatically ScrollView에 LinearLayouts 추가
...
<ScrollView
android:id="@+id/scrollView_container"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_marginTop="33dp" >
<LinearLayout
android:id="@+id/image_holder"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</LinearLayout>
</ScrollView>
...
이미지를 동적으로 추가하려고하는데 행당 3 개가 필요합니다.
private void createDice(LinearLayout ll, Integer required) {
ArrayList<Integer> images = new ArrayList<Integer>();
images.add(R.drawable.one);
images.add(R.drawable.two);
images.add(R.drawable.three);
images.add(R.drawable.four);
images.add(R.drawable.five);
images.add(R.drawable.six);
ScreenHelper screen = new ScreenHelper(MainActivity.this);
Map<String, Float> s = screen.getScreenSize();
Integer maxPerRow = (int) (s.get("width")/90); // images are 89px wide
Log.d(TAG, "max across::"+maxPerRow);
Integer rows = (required/maxPerRow);
Log.d(TAG, "rows::"+rows);
for (int i=0; i < rows; i++) {
Log.d(TAG, "i::"+i);
// create linear layout for row
LinearLayout llAlso = new LinearLayout(this);
llAlso.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
//llAlso.setOrientation(LinearLayout.HORIZONTAL);
for (int j=0; j < 3; j++) {
Log.d(TAG, "j::"+j);
// create/add image for the row
ImageView iv = new ImageView(this);
iv.setImageResource(images.get(i));
llAlso.addView(iv);
}
// add to main layout
ll.addView(llAlso, i);
Log.d(TAG, "adding to main view");
}
}
나는 6
문제의 필요한 매개 변수 값을 테스트하고 이미지의 첫 번째 행이 추가됩니다되어 있지만,이 인접 추가하기 때문에 두 번째 하나가 아니다 첫 번째 행 (따라서 화면에서 벗어남)이 아니라 아래에 있습니다.
원하는 출력을 얻는 방법에 대한 아이디어가 있으십니까 ??
당신이 달성하고자하는 것은 'GridView'에 매우 적합하다고 들리는데 왜 그 사용에 반대하는 이유입니까? –
@BrentHronik GridView를 사용하는 것에 반대하지 않았습니다. (지금 알고 있습니다.) 가장 좋은 방법이 아닌 경우에도 시작한 것을 마무리하고 싶습니다. – Rooneyl