2015-12-25 2 views
5

Я хочу поставить индикатор выполнения для просмотра изображений. Я попытался с помощью следующего кода:Использование индикатора выполнения в качестве границы изображения.

<de.hdodenhof.circleimageview.CircleImageView 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/image" 
    android:layout_width="64dp" 
    android:layout_height="64dp" 
    android:layout_alignParentLeft="true" 
    android:layout_marginLeft="3dp" 
    android:src="@drawable/defaultprofile" /> 
<ProgressBar 
    android:id="@+id/progressBar" 
    android:layout_width="64dp" 
    android:layout_height="64dp" 
    android:indeterminate="false" 
    android:progressDrawable="@drawable/circular_progress_bar" 
    android:background="@drawable/circle_shape" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:max="100" 
    android:progress="65" 
    android:layout_alignParentTop="true" 
    android:layout_alignLeft="@+id/image" 
    android:layout_alignStart="@+id/image" /> 

circular_progress_bar.xml:

<?xml version="1.0" encoding="utf-8"?> 
<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="270" 
    android:toDegrees="270"> 
    <shape 
     android:innerRadiusRatio="2.5" 
     android:shape="ring" 
     android:thickness="1dp" 
     android:useLevel="true"><!-- this line fixes the issue for lollipop api 21 --> 

     <gradient 
      android:angle="0" 
      android:endColor="#007DD6" 
      android:startColor="#007DD6" 
      android:type="sweep" 
      android:useLevel="false" /> 
    </shape> 
</rotate> 

circle_shape.xml:

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="ring" 
    android:innerRadiusRatio="2.5" 
    android:thickness="1dp" 
    android:useLevel="false"> 

    <solid android:color="#CCC" /> 

</shape> 

Результат:

enter image description here

Как это исправить? Индикатор выполнения должен выглядеть как граница изображения. Мне нужно удалить прокладку.

+0

попробовать положить ваш ImageView и ProgressBar в RelativeLayout, а затем, для ProgressBar, используйте 'андроид: layout_centerInParent =" истинный «'. – Lal

+0

Похоже, что индикатор выполнения автоматически добавляет прокладку. Вы видите какой-либо код дополнения в xml-файлах? –

+0

http://prntscr.com/9ifo8f Imageview и индикатор выполнения 64x64 оба из них. Но индикатор выполнения имеет пробел. –

ответ

1

так ваш взгляд сейчас выглядит так:

enter image description here

Все, что вам не нужно делать меняется рост и вес обоих видах - the're различных

EDIT: Теперь вы есть это:

enter image description here

Согласно http://developer.android.com/intl/es/guide/topics/resources/drawable-resource.html

удалить эту строку

android:innerRadiusRatio="2.5" 

РЕШЕНИЕ: Я уже изменил некоторые файлы:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:padding="10dp" 
       android:id="@+id/mainLayout"> 

    <de.hdodenhof.circleimageview.CircleImageView 
     android:id="@+id/image" 
     android:layout_width="65dp" 
     android:layout_height="65dp" 
     android:src="@color/colorAccent"/> 

    <ProgressBar 
     android:id="@+id/progressBar" 
     android:layout_width="65dp" 
     android:layout_height="65dp" 
     android:padding="1dp" 
     android:progressDrawable="@drawable/circular_progress_bar" 
     android:background="@drawable/circle_shape" 
     android:style="?android:attr/progressBarStyleHorizontal" 
     android:max="100" 
     android:progress="65" 
     android:layout_alignLeft="@+id/image" 
     android:layout_alignTop="@+id/image"  /> 
</RelativeLayout> 

Круговая Прогресс бар:

<?xml version="1.0" encoding="utf-8"?> 
<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
     android:fromDegrees="270" 
     android:toDegrees="270"> 
    <shape 
     android:innerRadius="32dp" 
     android:shape="ring" 
     android:thickness="1dp" 
     android:useLevel="true"><!-- this line fixes the issue for lollipop api 21 --> 

     <gradient 
      android:angle="0" 
      android:endColor="#007DD6" 
      android:startColor="#007DD6" 
      android:type="sweep" 
      android:useLevel="false" /> 
    </shape> 
</rotate> 

Круговая форма

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="ring" 
    android:thickness="1dp" 
    android:innerRadius="32dp" 
    android:useLevel="false"> 

    <solid android:color="#CCC" /> 

</shape> 

И это выглядит следующим образом:

enter image description here

Надеется, что это поможет

+0

Оба они 64x64 дп. Я изменил их.И он выглядит так же, как и скриншот –

+0

i code Я вижу андроид: layout_width = "75dp and android: layout_height =" 75dp " – piotrek1543

+0

Как я уже сказал, я изменил их на 64 –