Неверное растровое изображение масштаба Android View.getDrawingCache - PullRequest
0 голосов
/ 12 ноября 2010

Я создаю представление списка для сообщений разной высоты. Представления представляют собой XML-макет, который настроен так же на всех экранах с разрешением. Чтобы повысить производительность, я преобразовываю это представление в растровое изображение, вызывая View.getDrawingCache () . Я получаю растровое изображение, но кажется, что оно масштабирует текст, особенно на экранах с высоким разрешением. Это оставляет текст немного размытым, а в некоторых случаях он также обрезается по краям. Если я создаю макет просмотра, а не растрового изображения, все масштабируется правильно, но я не получаю желаемую производительность. Мой элемент XML-макет выглядит следующим образом:

Вид элемента XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5px"
    android:background="#FFFFFF">
    <ImageView android:id="@+id/contact_photo"
        android:layout_width="48dip"
        android:layout_height="48dip"/>
    <ImageView android:id="@+id/network_icon"
        android:layout_alignParentRight="true"
        android:layout_width="16dip"
        android:layout_height="16dip"/>
    <TextView android:id="@+id/created_date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp"
     android:layout_toLeftOf="@+id/network_icon"
     android:textColor="#000000"/>
    <TextView android:id="@+id/sender_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:layout_toRightOf="@+id/contact_photo"
        android:ellipsize="end"
        android:singleLine="true"
        android:textColor="#000000"/>
    <TextView android:id="@+id/summary"
        android:layout_below="@+id/sender_name"
        android:layout_toRightOf="@+id/contact_photo" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:maxLines="4"
        android:textColor="#000000" />
    <LinearLayout 
        android:id="@+id/AttachmentLayout" 
        android:layout_below="@+id/summary"
        android:layout_height="wrap_content" 
        android:orientation="horizontal" 
        android:layout_width="wrap_content"/>
</RelativeLayout>

Просмотреть фрагмент кода:

LayoutParams params = child.getLayoutParams();
if (params == null) {
    params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
}
final int index = layoutMode == LAYOUT_MODE_ABOVE ? 0 : -1;
child.setDrawingCacheEnabled(true);
addViewInLayout(child, index, params, true);

final int itemWidth = (int)(getWidth() * ITEM_WIDTH);
child.measure(MeasureSpec.EXACTLY | itemWidth, MeasureSpec.UNSPECIFIED);

Я также добавил фрагмент кода, предопределяющий измерение вида. Кто-нибудь знает, как предотвратить масштабирование текста?

1 Ответ

0 голосов
/ 17 ноября 2010

Хорошо ... ребята, я понял это.Это было действительно просто и должно было знать это с самого начала.Решение состоит в том, чтобы убедиться, что вы добавляете в AndroidManifest.xml.Я установил поддерживаемое разрешение на любое, потому что мои файлы макета xml разработаны для автоматического изменения размера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...