2015-05-28 2 views
0

Я хочу отображать мои изображения в списке, где изображение просматривается, я серился в сети и в stackoverflow я только что нашел, что они используют растровое изображение или я не люблю его использовать, потому что я ' m получение моей информации из webservice. есть ли какой-либо метод или пример, чтобы отобразить его таким образом.показать изображение с url в rounded imageview android

это, как я отобразить мои изображения прямоугольника границе

mLoader.DisplayImage(mylink + ArrayListComment.get(position).getImage(), holder.imageView); 
     } 
    if(ArrayListComment.get(position).getImage().contains(".png") { 

     mLoader.DisplayImage(ArrayListComment.get(position).getImage(), holder.imageView); 
    } 
+0

Существуют различные библиотеки доступны в GitHub проверить: https://github.com/vinc3m1/RoundedImageView или https://github.com/Pkmmte/CircularImag eView –

ответ

1

Для округлых изображений используйте RoundedImageView.

Для отображения изображения с использованием URL Picasso.

0

Попробуйте это,

import android.graphics.Bitmap; 
import android.graphics.Canvas; 
import android.graphics.Paint; 
import android.graphics.PorterDuffXfermode; 
import android.graphics.Rect; 
import android.graphics.RectF; 
import android.graphics.Bitmap.Config; 
import android.graphics.PorterDuff.Mode; 

public class ImageHelper { 
    public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) { 
     Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap 
       .getHeight(), Config.ARGB_8888); 
     Canvas canvas = new Canvas(output); 

     final int color = 0xff424242; 
     final Paint paint = new Paint(); 
     final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); 
     final RectF rectF = new RectF(rect); 
     final float roundPx = pixels; 

     paint.setAntiAlias(true); 
     canvas.drawARGB(0, 0, 0, 0); 
     paint.setColor(color); 
     canvas.drawRoundRect(rectF, roundPx, roundPx, paint); 

     paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 
     canvas.drawBitmap(bitmap, rect, rect, paint); 

     return output; 
    } 
} 

Вы должны настроить свой загрузчик изображений.

EDIT:

Если вы не хотите, чтобы создать копию растрового изображения, вы можете использовать растровый шейдер.

Смотрите этот блог,

http://www.curious-creature.com/2012/12/11/android-recipe-1-image-with-rounded-corners/

Смотрите RoundedImageView для реализации.

+0

Я не хочу использовать растровое изображение, потому что получение данных из webservice будет тяжелым – bamboun

+0

Итак, вы хотите создать пользовательский 'ImageView' с круглой формой? –

0

Да, вы можете это сделать, настроив ваше изображение. Пожалуйста, ознакомьтесь с моим классом customImageview, который может помочь вам здесь.

import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.Bitmap.Config; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.graphics.PorterDuff.Mode; 
import android.graphics.PorterDuffXfermode; 
import android.graphics.Rect; 
import android.graphics.drawable.BitmapDrawable; 
import android.graphics.drawable.Drawable; 
import android.util.AttributeSet; 
import android.widget.ImageView; 

public class RoundedImageView extends ImageView { 
public RoundedImageView(Context context) { 
    super(context); 
    // TODO Auto-generated constructor stub 
} 

public RoundedImageView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    // TODO Auto-generated constructor stub 
} 

public RoundedImageView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    // TODO Auto-generated constructor stub 
} 

@Override 
protected void onDraw(Canvas canvas) { 

    Drawable drawable = getDrawable(); 

    if (drawable == null) { 
     return; 
    } 

    if (getWidth() == 0 || getHeight() == 0) { 
     return; 
    } 
    Bitmap b = ((BitmapDrawable) drawable).getBitmap(); 
    Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true); 
    int w = getWidth(); 
    Bitmap roundBitmap = getCroppedBitmap(bitmap, w); 
    canvas.drawBitmap(roundBitmap, 0, 0, null); 
} 

public static Bitmap getCroppedBitmap(Bitmap bmp, int radius) { 
    Bitmap sbmp; 
    if (bmp.getWidth() != radius || bmp.getHeight() != radius) 
     sbmp = Bitmap.createScaledBitmap(bmp, radius, radius, false); 
    else 
     sbmp = bmp; 
    Bitmap output = Bitmap.createBitmap(sbmp.getWidth(), sbmp.getHeight(), 
      Config.ARGB_8888); 
    Canvas canvas = new Canvas(output); 

    final Paint paint = new Paint(); 
    final Rect rect = new Rect(0, 0, sbmp.getWidth(), sbmp.getHeight()); 

    paint.setAntiAlias(true); 
    paint.setFilterBitmap(true); 
    paint.setDither(true); 
    canvas.drawARGB(0, 0, 0, 0); 
    paint.setColor(Color.parseColor("#BAB399")); 
    canvas.drawCircle(sbmp.getWidth()/2 + 0.7f, 
      sbmp.getHeight()/2 + 0.7f, sbmp.getWidth()/2 + 0.1f, paint); 
    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 
    canvas.drawBitmap(sbmp, rect, rect, paint); 

    return output; 
} 

}

0

Попробуйте эту ссылку

общественности статической Растровые getCroppedBitmap (Bitmap BMP, Int радиус) {

Bitmap sbmp; 
if(bmp.getWidth() != radius || bmp.getHeight() != radius) 
    sbmp = Bitmap.createScaledBitmap(bmp, radius, radius, false); 
else 
    sbmp = bmp; 
Bitmap output = Bitmap.createBitmap(sbmp.getWidth(), 
     sbmp.getHeight(), Config.ARGB_8888); 
Canvas canvas = new Canvas(output); 

final int color = 0xffa19774; 

final Paint paint = new Paint(); 
final Rect rect = new Rect(0, 0, sbmp.getWidth(), sbmp.getHeight()); 

paint.setAntiAlias(true); 
paint.setFilterBitmap(true); 
paint.setDither(true); 
canvas.drawARGB(0, 0, 0, 0); 
paint.setColor(Color.parseColor("#BAB399")); 

canvas.drawCircle(sbmp.getWidth()/2+0.7f, sbmp.getHeight()/2+0.7f, 
     sbmp.getWidth()/2+0.1f, paint); 

paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.SRC_IN)); 
canvas.drawBitmap(sbmp, rect, rect, paint); 


     return output; 

}

http://easyandroidexample.blogspot.in/2015/03/how-to-make-image-circle-view.html

, возможно, это сработает для вас

0

Создать новую rounded.xml под вытяжкой

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape android:shape="rectangle" > 
      <stroke 
       android:width="10dp" 
       android:color="#FFffffff" /> 
      <solid android:color="#00000000" /> 
      <padding 
       android:bottom="0dp" 
       android:left="0dp" 
       android:right="0dp" 
       android:top="0dp" /> 
     </shape> 
    </item> 
    <item> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" > 
      <stroke 
       android:width="10dp" 
       android:color="#FFffffff" /> 
      <solid android:color="#00000000" /> 
      <corners android:radius="30dp" /> 
     </shape> 
    </item> 
</layer-list> 

и использовать его в целях изображений XML, как это: android:src="@drawable/rounded" и установить фоновое изображение, как вы хотите быть, это будет в округлая форма

Я надеюсь, что это поможет

+0

извините, я использую этот метод, и он не работает – bamboun

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