2013-06-14 5 views
1

Я хочу сделать представление, состоящее из нескольких других стандартных элементов. Есть ProgressBar, TextViews и ImageView. Я объявил, как макет их в разрешении/макет/myView.xmlПользовательский вид Android, объявленный в xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginRight="10dp" 
    tools:ignore="HardcodedText,ContentDescription" > 

    <ImageView 
     android:id="@+id/qItemImageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" /> 

    <TextView 
     android:id="@+id/qItemNameTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="5dp" 
     android:layout_toRightOf="@id/qItemImageView" 
     android:gravity="center" 
     android:text="Medium Text" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <ProgressBar 
     android:id="@+id/qProgressBar" 
     style="?android:attr/progressBarStyleHorizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/qItemNameTextView" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/qItemNameTextView" 
     android:max="100" 
     android:progress="50" /> 

    <TextView 
     android:id="@+id/qLevelTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@id/qItemImageView" 
     android:layout_alignTop="@id/qItemImageView" 
     android:text="7" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textStyle="bold" /> 

    <TextView 
     android:id="@+id/qTimeTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@id/qProgressBar" 
     android:layout_alignLeft="@id/qProgressBar" 
     android:layout_alignRight="@id/qProgressBar" 
     android:layout_alignTop="@id/qProgressBar" 
     android:layout_centerHorizontal="true" 
     android:gravity="center" 
     android:text="01:01:01" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="@android:color/black" /> 

</RelativeLayout> 

Я также создал новый класс, но не знаю, как я могу связать его с этим файлом ресурсов ...

import android.content.Context; 
import android.view.View; 

public class QueueRowView extends View { 
    public QueueRowView(Context context) { 
     super(context); 
    } 
} 

Как я могу сделать свой элемент управления похожим на файл макета?

ответ

1

Есть ли причина, по которой вам нужен отдельный класс для этого макета? Вы можете только include этот файл макета в другой. Если вам действительно нужен дополнительный класс, посмотрите на Fragments.

+0

Я хочу, чтобы это был элемент статического списка, поэтому, вероятно, лучшим решением является сделать его separete View. – karex

+0

Если это список, просто раздуйте макет в методе 'getView()' вашего адаптера. Вы также можете добавить все пользовательские логики к адаптеру. – SimonSays

Смежные вопросы