2015-07-28 3 views
2

Я искал больше на веб-сайтах и ​​получил много предложений, как показано нижеSet Round Corner изображение в ImageView

  • Изменение фона с пользовательского стиля, чтобы установить радиус угла и отступы (Getting изображение прямоугольника и фон, как закругленным углом)

  • Изменение данного изображения в растровое изображение путем декодирования изображения и обрезка функциональность путем пропускания этого растрового изображения и ширину (его принимать больше времени для загрузки)

Я проверил WhatsApp Chat history list and it has rounded corner images but its loaded with minimum time.

Не могли бы вы предложить мне лучший способ создать шаблон списка с закругленными изображениями, как в WhatsApp?

Я ожидаю, что измените изображение с закругленным углом, установив детали стиля в xml. (Ширина и высота изображения составляет 60 дп, и мой ListView, имеющий около 60 элементов)

Список литературы:

разреш/mylayout .xml:

<ImageView 
     android:id="@+id/contactssnap" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:src="@drawable/contactssnap" 
     android:background="@drawable/roundimage" /> 

Рез/рисуем/roundimage.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 
    <solid android:color="#ffffffff" /> 
    <stroke 
     android:width="2dp" 
     android:color="#90a4ae" /> 
    <size 
     android:height="50dp" 
     android:width="50dp" /> 
    <padding 
     android:bottom="2dp" 
     android:left="2dp" 
     android:right="2dp" 
     android:top="2dp" /> 
    <corners android:radius="100dp" /> 
</shape> 

Примечание: Поддерживается Android версии от 14 до 22

+0

Как вы настраиваете ImageView? Из ресурса или вы загружаете растровое изображение из другого места? –

+0

stackover flow уже имеет ответ, ссылаясь на это http://stackoverflow.com/questions/2459916/how-to-make-an-imageview-with-rounded-corners – bGorle

+0

@bGorle: да, я пробовал это, и у него больше времени на загружать изображения – Ponmalar

ответ

0

Вы проверили технику 9 патч в Android?

Если вы пытаетесь создать что-то вроде чатов с пузырьками приложений с закругленными углами, я предлагаю вам использовать эту технику вместо использования XML Bitmap Decoder.

вот пример: Link

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

enter image description here

2

вы можете использовать стандартный API поданному Google, чтобы создать круговую ImageView.

ImageView imageView = (ImageView) findViewById(R.id.circleImageView); 
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image); 
RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), bitmap); 
roundedBitmapDrawable.setCircular(true); 
imageView.setImageDrawable(roundedBitmapDrawable); 

https://www.youtube.com/watch?v=zVC-YAnDlgk относятся также

1

Ответ от Сац работается. Но RoundedBitmapDrawable, похоже, не может применяться к ImageView с scaleType - centerCrop.

Обновлено.

Если вы используете Android API на уровне 21. У нас есть простое решение здесь.

первых, создать вытяжку в качестве фона для ImageView

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
<corners android:radius="8dp" /> 
<solid android:color="@android:color/white" /> 

<stroke 
    android:width="1dp" 
    android:color="@color/colorWhite" /> 

Следующих, собственность setClipToOutline изменения ImageView к действительности. И установите округлый рисунок в качестве фона ImageView.

Все.

enter image description here

В моем демо, я с помощью этого метода для закругленной ImageView. Его можно найти здесь cuberto's dialog

+0

эй, ребята, я просто обновил ответ. –