2015-04-28 4 views
0

Я хочу создать следующий вид для приложения для Android. мнение должно быть относительным, когда он открывается на другой экран, размеры бумаги VideoView должны быть в рамках изображенияустановка видеоизображения над изображением в android

preview

и вот XML-файл до сих пор :(

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/updatemsg" 
    android:gravity="center" 
    android:keepScreenOn="true" 
    android:orientation="vertical" 
    android:padding="10dp" > 

    <VideoView 
     android:id="@+id/upgradevideo" 
     android:layout_width="757dp" 
     android:layout_height="426dp" 
     android:layout_marginBottom="0dp" 
     android:layout_marginTop="55dp" /> 

    <Button 
     android:id="@+id/upgrade_btn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="OK" /> 

</LinearLayout> 
+0

Что случилось с этой формой? – natario

+0

на разных размерах экрана видеоизображение не появляется внутри изображения –

ответ

0

Если вы хотите просмотреть другой вид в XML-файле, вам необходимо использовать FrameLayout. Используйте атрибут gravity, чтобы сделать макет, поддерживающий все типы экранов в android. Не используйте пиксели вместо ширины и высоты. Всегда используйте fill_parent или wrap_content.

См. Этот ниже код, чтобы понять FrameLayout.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:scaleType="centerCrop" 
    android:src="@drawable/ic_launcher" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:layout_marginTop="20dp" 
    android:background="#00000c" 
    android:padding="10dp" 
    android:text="Frame Layout Sample" 
    android:textColor="#fafafa" 
    android:textSize="22sp" /> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="right|bottom" 
    android:layout_marginLeft="5dp" 
    android:background="#AA000000" 
    android:padding="10dp" 
    android:text="28/May/2015" 
    android:textColor="#FFFFFF" 
    android:textSize="18sp" /> 

0

Вы можете использовать FrameLayout для этого.

<FrameLayout 
    android:id="@+id/upgradevideo" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

//make childrens here,they will appear one above the other 

</FrameLayout 
1

Я бы не использовать FrameLayout, что d oes не имеют реляционных атрибутов для своих детей (и здесь мы хотим иметь вид в другой).

Вы подходите (LinearLayout с фоном), кажется мне правильным. Все, что вам нужно, это найти правильные прокладки для вашего макета. Я бы избавился от атрибутов layout_margin и просто использовал android:paddingTop, android:paddingStart, android:paddingEnd, android:paddingBottom на родительском макете.

Что касается консистенции с различными устройствами, вы можете установить различные размеры, такие как:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/updatemsg" 
    android:paddingTop="@dimen/padding_top" > 

Тогда вы просто определить dimen ресурс в разных папках, так же атрибут воздастся с различными значениями в зависимости от размер/ориентация экрана. Посмотрите here.

Пример: значения/dimens.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <dimen name="padding_top">20dp</dimen> 
</resources> 

Пример: значения-XLarge/dimens.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <dimen name="padding_top">40dp</dimen> 
    <!-- this value will be used for very large devices --> 
</resources> 

Я также хотел бы предложить вам не жёстко layout_width и layout_heigth атрибуты VideoView. Попробуйте иметь динамические значения.

+0

Спасибо за ваш ответ, я попробую! –