Android Html изображения геттер хотят быть в прямом порядке - PullRequest
0 голосов
/ 05 марта 2012

в моем макете Android у меня есть текст и изображение, кнопки и т. Д. Размещены с прокруткой.В нижней части страницы я хочу показать текст и изображение, как показано ниже enter image description here

Изображение на левой стороне имеет правильный порядок (т.е. мой дизайн), где текст должен быть рядом сизображение и, если текст перемещается на вторую строку, то он также должен быть удален от изображения.Но для меня это выглядит неправильно, как показано на рисунке справа.

Ниже приведен мой код, используемый для этого,

CharSequence p = Html.fromHtml("<img src=\"board\" />"
                    + rawData[i]  + "<br>", this, null);

У меня было несколько данных, которые я запускаю для цикла

    for (int i = 0; i < featureData.length; i++) 
   {
    CharSequence p = Html.fromHtml("<img src=\"bone\"/>"+" "+ featureData[i] + "<br>", featuregetter, null);
    event_feature_img.append(p);
   }

, а затем идет следующее

public Drawable getDrawable(String source) {
        Log.i(" get drawable mathod ", "");
        Bitmap B = BitmapFactory
                .decodeResource(getResources(), R.drawable.categories);
        BitmapDrawable BD = new BitmapDrawable(B);
        BD.setBounds(10, 10, B.getWidth(), B.getHeight());

        return BD;
    }

Как я могу получить вышеупомянутый один ...

Ответы [ 3 ]

2 голосов
/ 14 марта 2012

используйте xml или создайте элемент управления динамически, как сказал @amc.

XML как:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="2" >

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/leftlayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bone" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="yourtext" />
    </LinearLayout>
</LinearLayout>

<LinearLayout
    android:id="@+id/rightlayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/bone" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="yourtext" />
    </LinearLayout>
</LinearLayout>

или программно:

LinearLayout leftLayout = new LinearLayout(this);
    leftLayout.setOrientation(LinearLayout.VERTICAL);
    int size = 0;
    for(int i=0;i<size; i++){
      LinearLayout ll = new LinearLayout(this);       
      TextView tv = new TextView(this);
      ImageView iv = new ImageView(this);
      tv.setText("your text");
      iv.setImageResource(R.drawable.ic_launcher);
      ll.addView(iv);
      ll.addView(tv);
      leftLayout.addView(ll);
    }

То же самое для rightLayout и добавьте их (leftLayout и rightLayout) в ваш mainLayout с горизонтальной ориентацией.

Надеюсь, что это полезно для вас.

0 голосов
/ 14 марта 2012

Возможно, вы захотите посмотреть это пример приложения из сеанса Google I / O Android Bootcamp 2011 года. Он реализует ListView с адаптером списка, который показывает интерфейс, очень похожий на ваш снимок экрана. (Вам нужно будет зайти в ChooseAndroidActivity.java и изменить ArrayAdapter<String>(...) на AndroidListAdapter_lab(this), чтобы увидеть записи списка соединений.)

0 голосов
/ 13 марта 2012

Сначала я бы порекомендовал использовать макеты XML для такого типа вещей.Намного проще выложить вещи, чем в коде.

В любом случае, это в основном то, что вы хотите для каждой строки:

<LinearLayout>
    <ImageView
        android:src="@drawable/img_file_name"
    />
    <TextView
        android:text="This is text"
    />
</LinearLayout>

В xml есть еще один шаблон, который вам нужен, но вы можете легко найти этот материал в документации для Android.

Вы также можете выполнить это в коде, но это не рекомендуется.Это может быть что-то вроде этого в упражнении:

LinearLayout parent = new LinearLayout(this);
ImageView image = new ImageView();
image.setImageBitmap(yourBitmap);
parent.addView(image);
TextView text = new TextView();
text.setText("your text");
parent.addView(text);

В обоих случаях текст будет перенесен, но останется внутри своего поля и не попадет под изображение.

...