首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏android技术

    Android利用SRC_IN模式下的Xfermode实现图片倒影效果

    } onDraw方法中处理 @Override protected void onDraw(Canvas canvas) { //画原图 canvas.drawBitmap (bitmapSrc, 0, 0, mPaint); //在原图下方画目标图 canvas.drawBitmap(bitmapDst, 0, bitmapSrc.getHeight matrix.setScale(1,-1); matrix.postTranslate(0,bitmapSrc.getHeight()*2); canvas.drawBitmap

    1.1K20发布于 2020-07-03
  • 来自专栏Android小菜鸡

    CanvasAPI

    RectF rect, float rx, float ry, Paint paint); //画路径 void drawPath(Path path, Paint paint); //画位图 void drawBitmap (Bitmap bitmap, float left, float top, Paint paint); void drawBitmap(Bitmap bitmap, Rect src, RectF dst , Paint paint); void drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint); void drawBitmap(int[ ] colors, int offset, int stride, float x, float y, int width, int height, boolean hasAlpha, void drawBitmap , int offset, int stride, int x, int y, int width, int height, boolean hasAlpha, Paint paint); void drawBitmap

    43720发布于 2018-09-06
  • 来自专栏HenCoder

    HenCoder Android 开发进阶:自定义 View 1-4 Canvas 对绘制的辅助

    1.1 clipRect() 使用很简单,直接应用: canvas.clipRect(left, top, right, bottom); canvas.drawBitmap(bitmap, x, canvas.save(); canvas.translate(200, 0); canvas.drawBitmap(bitmap, x, y, paint); canvas.restore canvas.save(); canvas.translate(200, 0); canvas.drawBitmap(bitmap, x, y, paint); canvas.restore canvas.save(); canvas.skew(0, 0.5f); canvas.drawBitmap(bitmap, x, y, paint); canvas.restore(); canvas.save(); canvas.translate(200, 0); canvas.drawBitmap(bitmap, x, y, paint); canvas.restore

    90920发布于 2018-08-20
  • 来自专栏深入理解Android

    Android自定义系列——5.Canvas图片文字绘制

    1.绘制图片 绘制有两种方法,drawPicture(矢量图) 和 drawBitmap(位图) (1)drawPicture 使用Picture前请关闭硬件加速,以免引起不必要的问题! 在使用Picture之前请关闭硬件加速,以免引起不必要的问题 (2)drawBitmap 通过BitmapFactory从不同位置获取Bitmap: 1.资源文件(drawable/mipmap/raw 绘制Bitmap: 依照惯例先预览一下drawBitmap的常用方法: // 第一种 public void drawBitmap (Bitmap bitmap, Matrix matrix, Paint void drawBitmap (Bitmap bitmap, Rect src, Rect dst, Paint paint) public void drawBitmap (Bitmap bitmap canvas.drawBitmap(bitmap,200,500,new Paint()); 第三种方法,多了两个矩形区域(src,dst) 名称 作用 Rect src 指定绘制图片的区域 Rect

    1K41编辑于 2022-06-22
  • 来自专栏封碎

    Android画图之抗锯齿 博客分类: Android小技巧 Android

    R.drawable.show); } @Override public void dispatchDraw(Canvas canvas) { canvas.translate(100, 0); canvas.drawBitmap (bmp, matrix, null); canvas.translate(0, 250); canvas.drawBitmap(bmp, matrix, mPaint); canvas.setDrawFilter (pfd); canvas.translate(0, 250); canvas.drawBitmap(bmp, matrix, null); } } 下图是效果: ?      

    3.2K20发布于 2018-10-31
  • 来自专栏向治洪

    自定义圆角和园边的实现

    new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));   /**          * 绘制图片          */         canvas.drawBitmap 下面有一张PorterDuff.Mode的16中效果图,咱们的只是其一: 源码咱们只关心谁先谁后绘制的 canvas.translate(x, y);                 canvas.drawBitmap (mDstB, 0, 0, paint);                 paint.setXfermode(sModes[i]);                 canvas.drawBitmap (createCircleImage(mSrc, min), 0, 0, null);   break;   case TYPE_ROUND:               canvas.drawBitmap new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));   /**          * 绘制图片          */         canvas.drawBitmap

    1.2K70发布于 2018-01-29
  • 来自专栏陶士涵的菜地

    [android] 切换按钮-自定义控件

    setMeasuredDimension()方法,参数:宽度,高度;调用背景Bitmap对象的getWidth()和getHeight() 重写onDraw()方法,传递进来Canvas对象 调用Canvas对象的drawBitmap 上边点(0),Paint对象 获取Paint对象,new出来 调用Paint对象的setAntiAlias(),设置抗锯齿,参数:布尔值 滑动按钮 滑动按钮目前的位置,0,0,状态是 关 canvas.drawBitmap (bitmapBtn, 0, 0, paint); 滑动按钮的位置在,背景图的宽度-滑动按钮的宽度,0,状态是 开 canvas.drawBitmap(bitmapBtn, 背景图的宽度-滑动按钮的宽度 view */ @Override protected void onDraw(Canvas canvas) { //绘制背景 canvas.drawBitmap (bitmapBackground, 0, 0, paint); //绘制滑动按钮 canvas.drawBitmap(bitmapBtn, slideBtnLeft,

    2.2K20发布于 2019-09-10
  • 来自专栏wangweijun

    Android进阶之绘制-自定义View完全掌握(四)

    我们在绘制第二张图的时候是距离左边距为0,而此时我们已经计算出了开启状态需要距离左边的边距,所以,我们只需这样修改 canvas.drawBitmap(slidingBitmap,slidLeftMax (backgroundBitmap, 0, 0, paint); canvas.drawBitmap(slidingBitmap, slideLeft, 0, paint); } (backgroundBitmap, 0, 0, paint); canvas.drawBitmap(slidingBitmap, slideLeft, 0, paint); } (backgroundBitmap, 0, 0, paint); canvas.drawBitmap(slidingBitmap, slideLeft, 0, paint); } (backgroundBitmap, 0, 0, paint); canvas.drawBitmap(slidingBitmap, slideLeft, 0, paint); }

    70920发布于 2020-01-20
  • 来自专栏android技术

    Android利用SRC_OUT模式下的Xfermode实现刮刮卡效果

    event); } @Override protected void onDraw(Canvas canvas) { //画结果 canvas.drawBitmap null, Canvas.ALL_SAVE_FLAG); //画DST dstCanvas.drawPath(path,pathPaint); canvas.drawBitmap new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT); mPaint.setXfermode(xfermode); canvas.drawBitmap

    1K10发布于 2020-07-02
  • 来自专栏米扑专栏

    Android --- 图片的特效处理

    rectF, roundPX, roundPX, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap (height + height/2), Config.ARGB_8888); Canvas canvas = new Canvas(reflectedBitmap); canvas.drawBitmap defaultPaint = new Paint(); canvas.drawRect(0, height, width, height + reflectedGap, defaultPaint); canvas.drawBitmap super.onCreate(savedInstanceState); setContentView(R.layout.main); drawBitmap (); } private void drawBitmap(){ imgView1 = (ImageView)findViewById(R.id.imgView1

    1.8K30发布于 2019-02-19
  • 来自专栏向治洪

    滑动开关按钮SlideSwich

    (canvas, null, null, mSwitch_off);               drawBitmap(canvas, null, null, mSwitch_thumb);                               canvas.translate(mSwitch_on.getWidth() - mSwitch_thumb.getWidth(), 0);               drawBitmap SWITCH_ON : SWITCH_OFF;               drawBitmap(canvas, new Rect(0, 0, mDstX, mBmpHeight), new Rect mPaint);   int count = canvas.save();               canvas.translate(mDstX, 0);               drawBitmap bitmap.getWidth(), bitmap.getHeight()) : dst);           Paint paint = new Paint();           canvas.drawBitmap

    2.3K100发布于 2018-01-29
  • 来自专栏封碎

    Android画图之Bitmap(一) 博客分类: Android Android

    方法很简单,在 View 里面,重载 onDraw(Canvas canvas) 方法,然后用 canvas.drawBitmap() 方法,将其画在屏幕上。 canvas.drawBitmap(mBitmap, 0, 0, null); } }  结果: ? 原图: ? 虽然这仅仅只是第一步,但是很鼓舞人心呢,呵呵。 canvas.drawBitmap(mBitmap, 0, 0, null); } }  显示结果: ?       下面一篇将介绍对Bitmap的一些操作。

    2K30发布于 2018-10-31
  • 来自专栏fjal

    Android实现人脸识别动画效果

    int top = (int) (getWidth() / 2 - getWidth() / 3 - getWidth() / 1.5f / 8); canvas.drawBitmap (mInnerCircleBitmap,left,top,mPaint); canvas.drawBitmap(mOutCircleBitmap,left,top,mPaint); canvas.save(); canvas.rotate(mDegress,getWidth() / 2, getWidth() / 2); canvas.drawBitmap canvas.save(); canvas.rotate(-mDegress,getWidth() / 2, getWidth() / 2); canvas.drawBitmap

    1.3K40编辑于 2021-12-09
  • 来自专栏CodingBlock

    Android查缺补漏(View篇)--自定义View利器Canvas和Paint详解

    下面是drawBitmap的几个比较常用的重载方法: drawBitmap(Bitmap bitmap, float left, float top, Paint paint) bitmap:Bitmap top:看2 paint:画笔 drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) src:在Bitmap图片上截取一部分作为绘制源,可 drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint) matrix:Matrix的参数传入是的drawBitmap功能变得异常强大,让此方法有意思了许多 在onDraw方法中drawBitmap的以上重载方法,注意在使用完Bitmap之后记得用Bitmap.recycle()来回收掉资源,以防止oom。 ); // 绘制图片 canvas.drawBitmap(bitmap, 0, 300, null); // 将图片拉伸平铺在RectF矩形内 canvas.drawBitmap(bitmap, null

    1.4K120发布于 2018-03-30
  • 来自专栏向治洪

    仿uc下部弹出菜单

    /**          * 以一个Bitmap为画布,画上一个Bitmap          * @param canvasBitmap 作为画布的Bitmap          * @param drawBitmap (Bitmap canvasBitmap, Bitmap drawBitmap, int top, int left)           {             Canvas localCanvas = new Canvas(canvasBitmap);//以canvasBitmap生成画布             localCanvas.drawBitmap(drawBitmap, left, top, null);//在画布上移left和top左标开始绘制drawBitmap             localCanvas.save(Canvas.ALL_SAVE_FLAG);//保存              localCanvas.restore();             drawBitmap.recycle();//释放掉drawBitmap,防止内存泄漏           } 加载资源文件中的图片为

    2.1K80发布于 2018-01-26
  • 来自专栏cwl_Java

    速读原著-Android应用开发入门教程(图像、图形、文本的基本绘制)

    float y = 10; // 设置纵坐标 p.setColor(Color.RED); // 设置画笔为红色 canvas.drawBitmap 10, y, p); // 绘制第 1 个位图(原始图像) y += mBitmap.getHeight() + 10; // 纵坐标增加 canvas.drawBitmap += mBitmap2.getHeight() + 10; // 纵坐标增加 p.setShader(mShader); // 设置阴影 canvas.drawBitmap

    66010发布于 2020-02-13
  • 来自专栏韩曙亮的移动开发专栏

    【Android 应用开发】Paint 图形组合 Xfermod 之 合成模式表示方法 ( Xfermod 使用步骤 | 透明度 颜色值 公式表示方法 | 老版本表示方法 | 合成区域分块 )

    Destination Image ) : 先绘制的是目标图像 , 设置 Xfermod 图形组合模式后 , 绘制的是源图像 ; //绘制目标图像 ( Destination Image ) canvas.drawBitmap 目标图像 ( SourceImage ) : 先绘制的是目标图像 , 设置 Xfermod 图形组合模式后 , 绘制的是源图像 ; //绘制 源图像 ( SourceImage ) canvas.drawBitmap 0, paint); ⑤ 代码总结 : 使用 Xfermod 的四个步骤 : // 1.创建画笔 Paint paint = new Paint(); // 2.绘制目标图像 canvas.drawBitmap choose a mode paint.setXfermode(new PorterDuffXfermode(mode)); // 4.绘制 源图像 ( SourceImage ) canvas.drawBitmap

    1.9K20编辑于 2023-03-27
  • 来自专栏微卡智享

    Android CameraX NDK OpenCV(三)-- 人脸贴图替换

    "width:${w}" + " height:${h}" mView.post { mView.drawBitmap ViewOverlay中加入了专门为人脸贴图定义的几个变量,mFaceBitmap直接加载的资源里面的png图片,mFaceRect的矩形也是直接获取加载后的mFaceBitmap的矩形大小,定义的这两个主要为了drawBitmap drawBitmap(it, x, y, Paint()) } mRects?. drawBitmap( mFaceBitmap, mFaceRect, p, Paint() ) onDraw事件里针对每个一Rect矩形,我们都在原矩形的基础上再扩大10,所以除了位置偏移后再对每个点做了一个10的固定偏移,最后用drawBitmap画出图像就实现了贴图的效果。 ?

    1.5K10发布于 2021-01-06
  • 来自专栏三流程序员的挣扎

    群组头像拼接

    drawBitmap 需要指定范围 RectF,只要知道小图圆心坐标就行了。 bitmapRadius, pos[1] - bitmapRadius, pos[0] + bitmapRadius, pos[1] + bitmapRadius); // 根据这个范围绘制头像 canvas.drawBitmap totalRadius, paint); switch (bitmaps.size()) { // case 1: // canvas.drawBitmap bitmapRadius, pos[1] - bitmapRadius, pos[0] + bitmapRadius, pos[1] + bitmapRadius); canvas.drawBitmap rectF; } if (i == bitmapSize-1) { // 最后一张图片,生成另一个大的图片 canvas.drawBitmap

    1.7K10发布于 2021-01-13
  • 来自专栏非著名程序员

    Android学习第三弹之Android图片颜色处理

    paint.setColor(Color.BLACK); paint.setAntiAlias(true); final Matrix matrix = new Matrix(); canvas.drawBitmap 0,// 蓝色值 0, 0, 0, 1, 0 // 透明度 }); paint.setColorFilter(new ColorMatrixColorFilter(cm)); canvas.drawBitmap 0,// 蓝色值 0, 0, 0, 1, 0 // 透明度 }); paint.setColorFilter(new ColorMatrixColorFilter(cm)); canvas.drawBitmap 0,// 蓝色值 0, 0, 0, 1, 0 // 透明度 }); paint.setColorFilter(new ColorMatrixColorFilter(cm)); canvas.drawBitmap 0,// 蓝色值 0, 0, 0, 1, 0 // 透明度 }); paint.setColorFilter(new ColorMatrixColorFilter(cm)); canvas.drawBitmap

    747100发布于 2018-02-01
领券