#android #imageview #android-linearlayout #viewflipper
#Android #просмотр изображений #android-linearlayout #viewflipper
Вопрос:
В моем приложении мне нужно использовать ViewFlipper для переключения экранов путем перетаскивания по сенсорному экрану. У меня есть ListView, который содержит некоторые элементы. Когда элемент выбран, я должен отобразить несколько изображений. Проблема в том, что количество изображений отличается от одного элемента к другому. Поэтому я думаю, что я должен создать LinearLayout и ImageView программно. Возможно ли то, что я пытаюсь сделать?
Заранее спасибо..
Вот код, который я пробовал :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="#000000"
android:id="@ id/layout_main">
<ViewFlipper android:id="@ id/details"
android:layout_width="fill_parent" android:layout_height="fill_parent">
</ViewFlipper>
</LinearLayout>
и в методе Oncreate() :
for (int i = 0; i < jArray.length(); i ) {
LinearLayout l=new LinearLayout(this);
l.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
l.setBackgroundColor(0xFFFFFFFF);
l.setOrientation(LinearLayout.VERTICAL);
ImageView img = new ImageView(this);
img.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
//ImageView img1 = (ImageView) findViewById(R.id.photo1);
Drawable image1 = ImageOperations(getBaseContext(), url[i]);
img.setImageDrawable(image1);
l.addView(img);
}
но ничего не происходит. Я вижу только большой черный экран.
Комментарии:
1. вы добавляете linearlayout в viewflipper? Эта часть не видна в коде
2. В этом и заключалась проблема. Спасибо 🙂
Ответ №1:
Я точно не понял, что вы говорите, но раньше я работал над ViewFlipper. Я использую четыре линейных макета в качестве дочерних представлений для ViewFlipper, которые в xml. (где, как во-первых, я попытался добавить listviews непосредственно как дочерние просмотры, но добавление linearlayouts упростит)
и добавлены listviews, imageviews, как вы сказали, к соответствующим linearlayouts из кода Java.
и это сработало.
Надеюсь, это поможет.
Вот мой код, который я использовал для xml :
<RelativeLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@ id/tabrelay"
android:gravity="center_horizontal"
>
<ViewFlipper android:id="@ id/details"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
style="@style/FlipperMargins.flipper"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:orientation="vertical"
android:id="@ id/list1"
android:listSelector="@color/sprgreen"
android:drawSelectorOnTop="true"
android:background="@drawable/deckbackn"
style="@style/Webview.view"
/>
<LinearLayout
android:layout_width="@dimen/webViewWidth"
android:layout_height="@dimen/webViewHeight"
android:layout_gravity="center"
android:divider="@color/grey46"
android:dividerHeight="1dp"
android:id="@ id/list2"
android:background="@drawable/white"
style="@style/Webview.view"
/>
<LinearLayout
android:layout_width="@dimen/webViewWidth"
android:layout_height="@dimen/webViewHeight"
android:layout_gravity="center"
android:orientation="vertical"
android:id="@ id/list3"
android:listSelector="@color/sprgreen"
android:drawSelectorOnTop="true"
android:background="@drawable/commentsbg"
style="@style/Webview.view"
/>
<WebView
android:id="@ id/helloWebView"
android:layout_width="@dimen/webViewWidth"
android:layout_height="@dimen/webViewHeight"
android:layout_gravity="center"
android:background="@drawable/white"
style="@style/Webview.view"
/>
</ViewFlipper>
</RelativeLayout>
после этого вы можете получить идентификаторы linearlayouts из xml и добавить, какой сервер вы хотите, listviews и т.д. из java..,,
Комментарии:
1. Спасибо за ваш реплей. Я решил проблему, добавив LinearLayout create by code в ViewFlipper.
2. Если вам нравится ваша проблема, примите правильный ответ, который вам помог