iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android实现图片阴影效果的方法
  • 381
分享到

Android实现图片阴影效果的方法

方法图片Android 2022-06-06 10:06:14 381人浏览 泡泡鱼
摘要

本文实例介绍了Android实现图片阴影效果,设置画布颜色,图像倾斜效果,图片阴影效果的方法,采用canvas.save(Canvas.MATRIX_SAVE_FLAG);来实

本文实例介绍了Android实现图片阴影效果,设置画布颜色,图像倾斜效果,图片阴影效果的方法,采用canvas.save(Canvas.MATRIX_SAVE_FLAG);来实现。由于图片的实际尺寸比显示出来的图像要大一些,因此需要适当更改下大小,以达到较好的效果,在原有矩形基础上,画成圆角矩形,同时带有阴影层。读者可以根据自身需要对该程序代码进行个性化的修改以便更符合自身项目需求。

具体实现代码如下:


package canvas.test;
import android.app.Activity;
import android.os.Bundle;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.view.View;
public class ShaderEffect extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(new ImageEffect(this));
  }
  class ImageEffect extends View{
    Paint paint; 
    public ImageEffect (Context context){
      super(context);
      paint = new Paint();//初始化画笔,为后面阴影效果使用。
      paint.setAntiAlias(true);//去除锯齿。
      paint.setShadowLayer(5f, 5.0f, 5.0f, Color.BLACK);//设置阴影层,这是关键。
      paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
    }
    @Override
    public void onDraw(Canvas canvas){
      super.onDraw(canvas);
      int posX = 20;
      int posY = 50;
      int PicWidth,PicHegiht; 
      Drawable drawable = getResources().getDrawable(R.drawable.button);
      Drawable dbe = getResources().getDrawable(R.drawable.button).mutate();//如果不调用mutate方法,则原图也会被改变,因为调用的资源是同一个,所有对象是共享状态的。
      Drawable drawTest = getResources().getDrawable(R.drawable.button);
      Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.button);
      PicWidth = drawable.getIntrinsicWidth();
      PicHegiht = drawable.getIntrinsicHeight();
      drawTest.setBounds(posX, (2 * posY) + PicHegiht, posX + PicWidth, (2 * posY) + 2 * PicHegiht );
      drawable.setBounds(posX,posY,posX+PicWidth,posY+PicHegiht);
      dbe.setBounds(0, 0, PicWidth, PicHegiht);
      canvas.drawColor(Color.WHITE);//设置画布颜色
      canvas.save(Canvas.MATRIX_SAVE_FLAG);
      dbe.setColorFilter(0x7f000000,PorterDuff.Mode.SRC_IN);
      canvas.translate(posX + (int)(0.9 * PicWidth/2), posY + PicHegiht/2);//图像平移为了刚好在原图后形成影子效果。
      canvas.skew(-0.9F, 0.0F);//图像倾斜效果。
      canvas.scale(1.0f, 0.5f);//图像(其实是画布)缩放,Y方向缩小为1/2。
      dbe.draw(canvas);//此处为画原图像影子效果图,比原图先画,则会在下层。
      drawable.clearColorFilter();
      canvas.restore();
      canvas.save(Canvas.MATRIX_SAVE_FLAG);
      drawable.draw(canvas);//此处为画原图像,由于canvas有层次效果,因此会盖在影子之上。
      canvas.restore();
      //默认无效果原图
      canvas.save(Canvas.MATRIX_SAVE_FLAG);
      drawTest.draw(canvas);
      canvas.restore();
      //图片阴影效果
      canvas.save(Canvas.MATRIX_SAVE_FLAG);
      //Rect rect = new Rect(2*posX + PicWidth, 2*posY + PicHegiht, 2*posX + 2*PicWidth, 2*posY + 2*PicHegiht);//此为理论上的阴影图坐标
      Rect rect = new Rect(2*posX + PicWidth + 3, 2*posY + PicHegiht + 3, 2*posX + 2*PicWidth - 2, 2*posY + 2*PicHegiht - 2);
      //由于图片的实际尺寸比显示出来的图像要大一些,因此需要适当更改下大小,以达到较好的效果
      RectF rectF = new RectF(rect);
      canvas.drawRoundRect(rectF, 10f, 10f, paint);//在原有矩形基础上,画成圆角矩形,同时带有阴影层。
      canvas.drawBitmap(bmp, 2*posX + PicWidth, 2*posY + PicHegiht, null);//画上原图。
      canvas.restore();
    }
  }
}
您可能感兴趣的文章:Android实现圆角Button按钮Android中给按钮同时设置背景和圆角示例代码Android中快速便捷的实现圆角按钮方法详解Android实现空心圆角矩形按钮的实例代码Android圆角按钮的制作方法Android设置控件阴影的三种方法Android 给控件添加边框阴影效果Android 自定义阴影效果详解及实例Android编程之阴影(Shadow)制作方法Android控件阴影颜色调整示例Android开发实现的圆角按钮、文字阴影按钮效果示例


--结束END--

本文标题: Android实现图片阴影效果的方法

本文链接: https://www.lsjlt.com/news/26982.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android实现图片阴影效果的方法
    本文实例介绍了Android实现图片阴影效果,设置画布颜色,图像倾斜效果,图片阴影效果的方法,采用canvas.save(Canvas.MATRIX_SAVE_FLAG);来实...
    99+
    2022-06-06
    方法 图片 Android
  • css3怎么实现图片阴影效果
    这篇文章主要讲解了“css3怎么实现图片阴影效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css3怎么实现图片阴影效果”吧!css3实现阴影属性有:1、...
    99+
    2022-10-19
  • Android实现ImageView阴影和图层效果
    本文实例为大家分享了ImageView阴影和图层效果的实现代码,供大家参考,具体内容如下 import android.app.Activity; import andro...
    99+
    2022-06-06
    Android
  • css阴影效果的实现方法
    这篇文章主要为大家展示了css阴影效果的实现方法,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“css阴影效果的实现方法”这篇文章吧。css是什么意思css是一种用来表现HTML或XML等文件样式的...
    99+
    2023-06-06
  • css实现阴影效果的方法
    这篇文章主要介绍了css实现阴影效果的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法:1、使用text-shadow属性,语法“text-shadow: 水平阴影 垂...
    99+
    2023-06-14
  • css3怎么实现图片的简单阴影效果
    这篇文章将为大家详细讲解有关css3怎么实现图片的简单阴影效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   使用css3实现图片的阴影效果的原理   一个图形需...
    99+
    2022-10-19
  • Android直播系统平台搭建之图片实现阴影效果的方法小结
    Android直播系统平台搭建, 图片实现阴影效果的若干种方法,下面给大家列举了三种方法,具体代码如下所示: 第一种 使用 layer-list <?xml ve...
    99+
    2022-11-12
  • Android怎么实现阴影效果
    这篇文章主要介绍了Android怎么实现阴影效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android怎么实现阴影效果文章都会有所收获,下面我们一起来看看吧。实现形式elevationMaterial D...
    99+
    2023-07-02
  • 详解Android Material设计中阴影效果的实现方法
    View可以投下的阴影,一个View的elevation值决定了它的阴影的大小和绘制的顺序。可以设置一个视图的elevation,在布局中使用属性:android:elevat...
    99+
    2022-06-06
    方法 material Android
  • css3文字阴影效果的实现方法
    这篇文章将为大家详细讲解有关css3文字阴影效果的实现方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   <!DOCTYPEhtml>   <h...
    99+
    2022-10-19
  • 详解Android如何实现阴影效果
    目录实现形式elevationCardView属性shadow属性layer配置文件自定义实现小结实现形式 elevation Material Design提供了View的阴影效果...
    99+
    2022-11-13
  • CSS3中如何实现图层阴影和文字阴影效果
    这篇文章给大家分享的是有关CSS3中如何实现图层阴影和文字阴影效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。box-shadow图层阴影box-shadow:阴影类型 X水平...
    99+
    2022-10-19
  • 利用CSS实现元素的阴影效果的方法
    利用CSS实现元素的阴影效果的方法,需要具体代码示例在网页设计中,为元素添加阴影效果能够使页面更加生动、立体。利用CSS,我们可以通过简单的代码实现各种不同的阴影效果。本文将为大家介绍几种常见的实现元素阴影效果的方法,并给出具体的代码示例。...
    99+
    2023-11-21
    阴影效果 CSS阴影 元素阴影
  • Android编程使用自定义shape实现shadow阴影效果的方法
    本文实例讲述了Android编程使用自定义shape实现shadow阴影效果的方法。分享给大家供大家参考,具体如下: 直接上xml文件, 并且附上相应的解析: <�...
    99+
    2022-06-06
    shape 方法 shadow Android
  • Android5.x中的阴影效果elevation和translationZ的实现方法
    android5.x中 view多了一个 属性 z,垂直高度上的变化。 Z属性  由两部分组成,elevation 和 translationZ <Ima...
    99+
    2022-06-06
    方法 Android
  • Android实现图片轮播效果的两种方法
    大家在使用APP的过程中,经常会看到上部banner图片轮播的效果,那么今天我们就一起来学习一下,android中图片轮询的几种实现方法: 第一种:使用动画的方法实现:(代码繁...
    99+
    2022-06-06
    方法 图片 轮播 Android
  • Android实现图片叠加效果的两种方法
    本文实例讲述了Android实现图片叠加效果的两种方法。分享给大家供大家参考,具体如下: 效果图: 第一种: 第二种: 第一种是通过canvas画出来的效果: publi...
    99+
    2022-06-06
    方法 图片 Android
  • Android 轻松实现图片倒影效果实例代码
    主Activity 代码如下:package com.mj.myweather;import android.app.Activity;import android.graph...
    99+
    2022-06-06
    图片 Android
  • html文本阴影效果的设置方法
    这篇文章主要介绍html文本阴影效果的设置方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!html是什么html的全称为超文本标记语言,它是一种标记语言,包含了一系列标签.通过这些标签可以将网络上的文档格式统一,使...
    99+
    2023-06-14
  • 利用CSS实现元素的边框阴影效果的方法
    利用CSS实现元素的边框阴影效果的方法,需要具体代码示例近年来,网页设计越来越重视用户体验,目标是尽可能提供更真实、更有层次感的页面效果。元素阴影效果就是其中之一,它能够给页面增添一种立体的感觉,使得元素更加突出和吸引人。本文将介绍如何利用...
    99+
    2023-11-21
    CSS 边框 阴影效果
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作