2016-01-09 2 views
1

Я хочу добавить тень к ImageView (справа и внизу).
Ниже я разместил 2 изображения с эффектом тени.
Мне нужен тот же эффект тени.Добавить тень в ImageView

Как применить этот эффект тени к моему ImageView?

Изображение с правой стороной тень
enter image description here

изображения с правым и нижней тенью
enter image description here

+0

http://stackoverflow.com/questions/3693234/custom-imageview-with-drop-shadow – Vyacheslav

+0

любым другим способом, чтобы создать эту тень выше я упомянул, как Xml @Vyacheslav – YUVRAJ

+0

Я не уверен, но, возможно, используйте Card View help – Ashkan

ответ

6

Установить размер набивки правых и нижней и фоном устанавливается ваша тень

<ImageView 
    android:id="@+id/imageview" 
    android:background="@drawable/drop_shadow" 
    <!--android:background="#660000"--> This breaks the syntax highlight 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"   
    android:paddingRight="10px" 
    android:paddingBottom="10px" 
    android:src="@drawable/pic1" 
/> 
+0

whats background that drop_shadow @sasikumar – YUVRAJ

+0

вы также можете использовать цветной андроид: background = "# 660000" – sasikumar

+0

Патч 9 даст вам более мягкие тени. –

4

Try использовать битмап

public Bitmap imgshadow(final Bitmap bm, final int dstHeight, final int dstWidth, int color, int size, float dx, float dy) { 
     final Bitmap mask = Bitmap.createBitmap(dstWidth, dstHeight, Config.ALPHA_8); 

     final Matrix scaleToFit = new Matrix(); 
     final RectF src = new RectF(0, 0, bm.getWidth(), bm.getHeight()); 
     final RectF dst = new RectF(0, 0, dstWidth - dx, dstHeight - dy); 
     scaleToFit.setRectToRect(src, dst, ScaleToFit.CENTER); 

     final Matrix dropShadow = new Matrix(scaleToFit); 
     dropShadow.postTranslate(dx, dy); 

     final Canvas maskCanvas = new Canvas(mask); 
     final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
     maskCanvas.drawBitmap(bm, scaleToFit, paint); 
     paint.setXfermode(new PorterDuffXfermode(Mode.SRC_OUT)); 
     maskCanvas.drawBitmap(bm, dropShadow, paint); 

     final BlurMaskFilter filter = new BlurMaskFilter(size, Blur.NORMAL); 
     paint.reset(); 
     paint.setAntiAlias(true); 
     paint.setColor(color); 
     paint.setMaskFilter(filter); 
     paint.setFilterBitmap(true); 

     final Bitmap ret = Bitmap.createBitmap(dstWidth, dstHeight, Config.ARGB_8888); 
     final Canvas retCanvas = new Canvas(ret); 
     retCanvas.drawBitmap(mask, 0, 0, paint); 
     retCanvas.drawBitmap(bm, scaleToFit, null); 
     mask.recycle(); 
     return ret; 
    } 



final Bitmap src = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); 
    final Bitmap shadows = imgshadow(src, src.getHeight(), src.getWidth(), Color.BLACK, 3, 1, 3); 
    final ImageView iv = (ImageView)findViewById(R.id.imageview1); 
    iv.setImageBitmap(shadows); 
Смежные вопросы