2016-11-08 14 views
1

Я разрабатываю приложение для Android. В моем приложении я открываю вид деятельности, как диалог. Для этого фона деятельности я хочу установить изображение для всего фона, но с радиусом границы. Поэтому я создал фоновый XML-ресурс, подобный этому.Настройка XML-ресурса с изображениями для фона в Android

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="@drawable/match_background_image" /> 
    <item> 
     <shape android:shape="rectangle" android:padding="10dp"> 
      <corners 
       android:bottomRightRadius="5dp" 
       android:bottomLeftRadius="5dp" 
       android:topLeftRadius="5dp" 
       android:topRightRadius="5dp"/> 
     </shape> 
    </item> 

</layer-list> 

Я установил этот ресурс в качестве фона LinearLayout. Когда я открываю деятельность, я получаю что-то вроде этого:

enter image description here

Как вы можете видеть, нет радиуса границы по углам. Кроме того, что я хочу сделать, так это также хочу установить scaleType как cropCenter для изображения. Так можно ли это сделать только в XML-ресурсе?

ответ

1

Я могу дать вам лучший способ, я использую это в качестве альтернативы. Вы можете использовать cardView в android, чтобы сделать ваши углы круглой формы.

добавить использование cardView следующие в ваших Gradle зависимостей,

compile 'com.android.support:cardview-v7:25.1.1' 

в вашей деятельности, которые необходимо открыть в диалоговом окне, измените XML следующим образом,

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/activity_dialog" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    card_view:cardCornerRadius="10dp"> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/YOUR_IMAGE"/> 

</android.support.v7.widget.CardView> 

Если вы используете деятельность, которая расширяет AppCompatActivity, как показано ниже,

i.e. DialogActivity extends AppCompatActivity 

необходимо изменить Ваша тема деятельности в андроиде манифестов, как показано ниже,

<activity android:name=".DialogActivity" 
      android:theme="@style/Theme.AppCompat.Dialog"></activity> 

еще

<activity android:theme="@android:style/Theme.Dialog" /> 

haaaaa, твердая часть закончена, теперь единственное, что вам нужно сделать, это вызов

startActivity(new Intent(this, DialogActivity.class)); 

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

  • Нет связанных вопросов^_^