setXfermode之使图片圆角化

package com.example.cavis;

import android.R.color;
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.Paint.Style;
import android.graphics.Path;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;

@SuppressWarnings("deprecation")
public class MyView extends View {
    private Paint paint;
    private Bitmap srcBitmap,dscBitmap;
    private int Height,Weigth;
    public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        // TODO Auto-generated constructor stub
        paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        srcBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ico_image);
        Weigth = srcBitmap.getWidth();
        Height = srcBitmap.getHeight();
        dscBitmap = Bitmap.createBitmap(Weigth, Height, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(dscBitmap);  
        //canvas.drawRoundRect(new RectF(0, 40, Weigth, Height), 40, 40, paint);//四个圆角
        //canvas.drawRoundRect(new RectF(0, -40, Weigth, Height), 40, 40, paint);//两个下圆角
        canvas.drawRoundRect(new RectF(0, 0, Weigth, Height+40), 40, 40, paint);//两个上圆角
        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
        canvas.drawBitmap(srcBitmap, 0, 0,paint);
    }

    public MyView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
        // TODO Auto-generated constructor stub
    }

    public MyView(Context context) {
        this(context, null);
        // TODO Auto-generated constructor stub
    }
    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        canvas.drawBitmap(dscBitmap, 0,0, null);
    }

  
}
时间: 2024-12-16 09:15:41

setXfermode之使图片圆角化的相关文章

android自定义控件(8)-利用onMeasure测量使图片拉伸永不变形,解决屏幕适配问题

使用ImageView会遇到的问题 在Android应用中,都少不了图片的显示,ImageView,轮播图,ViewPager等等,很多都是来显示图片的,很多时候,我们都希望图片能够在宽度上填充父窗体,这样比较符合人的审美观点,但是问题就随之而来了,那就是高度如何定义??先来看一个普通的ImageView的 Xml布局文件的定义: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xm

使图片与背景融为一体

原始图片 + 显示时的图片 例子1 例子2 例子3 作为mask用的图: 原理: 1. 一个mask用来只显示图片边缘 2. 取图片平均颜色并给这个mask赋值 3. 将背景色设置成平均色 4. 将要显示的图片放置在mask的下面 // 获取显示图片 UIImage *showImage = [UIImage imageNamed:@"6"]; // 获取遮罩图片 UIImage *maskImage = [UIImage imageNamed:@"mask"];

继续滑动菜单的完善,NavigationView,图片圆形化-CircleImageView

NavigationView是Design Support库提供的控件,所以要在闭包dependencies中添加依赖引入这个库, compile 'com.android.support:design:25.0.0'库的引用 compile 'de.hdodenhof:circleimageview:2.1.0'开源项目,实现图片圆形化 NavigationView控件的引用, <android.support.design.widget.NavigationView android:id=&qu

cocos2dx3.X shader使图片置灰

1 OpenGL ES着色器 opengl es的着色器有.fsh和.vsh两个文件.这两个文件在被编译和链接后就可以产生可执行程序与GPU交互.attribute是从外部传进来的,每一个顶点都会有这两个属性,所以它也叫做vertex attribute(顶点属性).而varying类型的变量是在vertex shader和fragment shader之间传递数据用的. .vsh 是 vertex shader,用与顶点计算,可以理解控制顶点的位置,在这个文件中我们通常会传入当前顶点的位置,和

【代码笔记】使图片两边不拉伸,中间拉伸

代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //使图片两边不拉伸,中间拉伸 UIImage *image = [UIImage imageNamed:@"1.jpg"]; image = [image stretchableImageWithLeftCapWidth:floorf(image.size.width/2) topCapHe

用canvas 实现个图片三角化(LOW POLY)效果

之前无意中看到Ovilia?用threejs做了个LOW POLY,也就是图片平面三角化的效果,觉得很惊艳,然后就自己花了点时间尝试了一下. 我是没怎么用过threejs,所以就直接用canvas的2d绘图API来做,因为感觉似乎这效果也用不上threejs. 直接上demo先:http://whxaxes.github.io/canvas-test/src/Funny-demo/lowpoly/index.html? ?(也可以在移动端看,不过因为计算量比较大,移动设备计算起来会比PC要多花些

css 使图片水平垂直居中

1.利用display:table-cell,具体代码如下: html代码如下: 1 <div class="img_wrap"> 2 <img src="wgs.jpg"> 3 </div> css代码如下: 1 .img_wrap{ 2 width: 400px; 3 height: 300px; 4 border: 1px dashed #ccc; 5 display: table-cell; //主要是这个属性 6 ver

【转】cocos2d-x游戏开发(十四)用shader使图片背景透明

转自:http://blog.csdn.net/dawn_moon/article/details/8631783 好吧,终于抽时间写这篇文章了. 手头上有很多人物行走图,技能特效图等,但这些图都有个纯黑色背景,怎么样将内容显示出来,让背景透明呢?前段时间搞了一下,感谢群里的童鞋们,提供了思路和方法. 这里用shader处理了像素,使黑色背景透明,直接上代码 ShaderSprite.h 1 #ifndef __TestShader__ShaderSprite__ 2 #define __Tes

如何利用CSS代码使图片和文字在同一行显示且对齐

对于初学css的新手朋友来说,经常会遇到这样一个问题,当文字和图片出现在同一行或者同一个div里面的时候,在浏览器中运行出来的显示效果往往是在不同的行,那么,我们怎么才能利用CSS代码使图片和文字在同一行显示且对齐呢? 对于这种现象,方法有3种: 1.通过添加css的“vertical-align:middle;”: 2.如果图片是背景图片,可以在css中设置背景图片,然后设置文字的padding属性: 3.把文字和图片分别放入不同的div中. 经过多次的测试,上面三种方法都可以让图片和文字在同