当前位置: 首页 > news >正文

房地产公司基本介绍/seo培训学院官网

房地产公司基本介绍,seo培训学院官网,怎样做号网站优化,如何做网站讯息目录结构: contents structure []EmbossMaskFilterBlurMaskFilterMaskFilter可以用来指定画笔的边缘效果。如果引用开启硬件加速的话,那么MaskFilter将不会起作用。关闭硬件加速: android:hardwareAccelerated"false" Android中有两…

目录结构:

contents structure [+]
  1. EmbossMaskFilter
  2. BlurMaskFilter

MaskFilter可以用来指定画笔的边缘效果。如果引用开启硬件加速的话,那么MaskFilter将不会起作用。
关闭硬件加速:

android:hardwareAccelerated="false"

Android中有两个已知的MaskFilter实现类,分别是:BlurMaskFilter和EmbossMaskFilter:
BlurMaskFilter:指定模糊样式和影响半径。
EmbossMaskFilter:指定浮雕的光源方向和周围光强度。

 

在实际中,使用不同的方法可能会有不同的硬件加速情况,比如笔者测试发现drawText默认是关闭硬件加速的,drawRect默认是开启硬件加速的。除了在Application.xml文件中指定硬件加速的开关情况,也可以通过代码来实现:

//不使用硬件加速
myview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
//...
//使用硬件加速
myview.setLayerType(View.LAYER_TYPE_HARDWARE,null);

 

1.EmbossMaskFilter

EmbossMaskFilter用于完成浮雕效果,通过PS可以更简单的完成类似的效果。EmbossMaskFilter的唯一构造方法是:

public EmbossMaskFilter (float[] direction,float ambient,float specular,float blurRadius)

这个构造方法在API 28(Android 9.0)中已经被废弃了。

在指定参数的时候需要指定光源方向(direction)、环境光强度(ambient)、镜面反射系数(specular)和模糊半径(blurRadius)。

float[] direction=new float[]{1,1,1};//指定光源方向
float light=0.4f;//指定环境光强度(0~1),0~1表示环境从暗到亮
float specular=6f;//指定镜面反射系数,越接近0,反射光越强。
float blur=3f;//指定模糊半径,值越大,越清晰。

EmbossMaskFilter emboss=new EmbossMaskFilter(direction,light,specular,blur);
if(!canvas.isHardwareAccelerated()){//在未硬件加速的情况下设置效果
    myPaint.setMaskFilter(emboss);
}

如下代码:

protected void onDraw(Canvas canvas) {super.onDraw(canvas);Paint paint=new Paint();paint.setColor(Color.RED);paint.setStyle(Style.FILL);paint.setTextSize(70);float[] direction=new float[]{1,1,1};//指定光源方向float light=0.3f;//指定环境光强度float specular=5;//指定镜面反射强度float blur=5f;//指定模糊程度
EmbossMaskFilter emboss=new EmbossMaskFilter(direction,light,specular,blur);if(!canvas.isHardwareAccelerated()){//如果没有开启硬件加速,就设置浮雕效果
        paint.setMaskFilter(emboss);}canvas.drawText("test测试", 200,200, paint);//绘制文本
}

效果图:

通过改变为不同的参数,可以得到不同的效果。

2.BlurMaskFilter

BlurMaskFilter有一个构造方法如下:

BlurMaskFilter(float radius, BlurMaskFilter.Blur style)

在构建BlurMaskFilter时,需要传入BlurMaskFilter.Blur枚举值,该枚举值有如下4种:

BlurMaskFilter.Blur.INNER 在边界内模糊,边界外不模糊
BlurMaskFilter.Blur.NORMAL 在边界内和边界外都模糊
BlurMaskFilter.Blur.OUTER 在边界外模糊,边界内不模糊
BlurMaskFilter.Blur.SOLID 在边边界内使用solid边框,边界外模糊


下面是使用示例:
activity_main.xml

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/rl"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="16dp"tools:context=".MainActivity"android:background="#ffffff"><TextViewandroid:id="@+id/tv"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="ANDROID"android:textSize="100dp"android:textStyle="bold"android:textColor="#ff0000"android:gravity="center"/><RadioGroupandroid:id="@+id/rg"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><RadioButtonandroid:id="@+id/rb_none"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="No blur"/><RadioButtonandroid:id="@+id/rb_inner"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Inner blur"/><RadioButtonandroid:id="@+id/rb_normal"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Normal blur"/><RadioButtonandroid:id="@+id/rb_outer"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Outer blur"/><RadioButtonandroid:id="@+id/rb_solid"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Solid blur"/></RadioGroup>
</RelativeLayout>

MainActivity.jave

import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.res.Resources;
import android.graphics.BlurMaskFilter;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;public class MainActivity extends Activity {Context mContext=null;Resources mResources=null;RelativeLayout mRelativeLayout=null;TextView mTextView=null;RadioGroup mRadioGroup=null;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//设置横屏
        mContext = getApplicationContext();mResources = getResources();mRelativeLayout = (RelativeLayout) findViewById(R.id.rl);mTextView = (TextView) findViewById(R.id.tv);mRadioGroup = (RadioGroup) findViewById(R.id.rg);// Set a checked change listener for RadioGroupmRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup radioGroup, int i) {if (i == R.id.rb_none) {// If no blur is checked// Set the TextView layer typemTextView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);// Clear any previous MaskFiltermTextView.getPaint().setMaskFilter(null);}if(i == R.id.rb_inner){// If inner blur checked
                    applyBlurMaskFilter(mTextView, BlurMaskFilter.Blur.INNER);}if(i == R.id.rb_normal){// If normal blur checked
                    applyBlurMaskFilter(mTextView, BlurMaskFilter.Blur.NORMAL);}if(i == R.id.rb_outer){// If outer blur checked
                    applyBlurMaskFilter(mTextView, BlurMaskFilter.Blur.OUTER);}if(i == R.id.rb_solid){// If solid blur checked
                    applyBlurMaskFilter(mTextView, BlurMaskFilter.Blur.SOLID);}}});}// Custom method to apply BlurMaskFilter to a TextView textprotected void applyBlurMaskFilter(TextView tv, BlurMaskFilter.Blur style){// Define the blur effect radiusfloat radius = tv.getTextSize()/10;// Initialize a new BlurMaskFilter instanceBlurMaskFilter filter = new BlurMaskFilter(radius,style);/*public void setLayerType (int layerType, Paint paint)Specifies the type of layer backing this view. The layer can be LAYER_TYPE_NONE,LAYER_TYPE_SOFTWARE or LAYER_TYPE_HARDWARE.A layer is associated with an optional Paint instance that controls how thelayer is composed on screen.ParameterslayerType : The type of layer to use with this view, must be one ofLAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE or LAYER_TYPE_HARDWAREpaint : The paint used to compose the layer. This argument is optional and can be null. It is ignored when the layer type is LAYER_TYPE_NONE*//*public static final int LAYER_TYPE_SOFTWAREIndicates that the view has a software layer. A software layer is backed bya bitmap and causes the view to be rendered using Android's software renderingpipeline, even if hardware acceleration is enabled.*/// Set the TextView layer typetv.setLayerType(View.LAYER_TYPE_SOFTWARE, new Paint());//取消硬件加速
tv.getPaint().setMaskFilter(filter);}
}

效果图:

 

参考文章:

How to use BlurMaskFilter In Android

 

http://www.jmfq.cn/news/5017519.html

相关文章:

  • 北京建设主管部门网站/深圳门户网站
  • 网站制作困难/电商培训视频教程
  • 网站首页三张海报做多大/产品怎么进行推广
  • 石家庄做网站排名公司/可口可乐软文范例
  • 幼儿园网站设计和建设/百度高级检索入口
  • 一个网站的制作过程/如何做网站赚钱
  • 三亚日报登报声明联系电话/免费网站建设seo
  • 广告设计公司业务范围/青岛seo整站优化
  • 项目管理软件的分类/安卓优化大师2023
  • 怎么做网站倒计时/企点qq
  • 外贸网站建设 翻译/武汉刚刚发生的新闻
  • 时时彩黑网站是怎么做/投资网站建设方案
  • 建立网站找什么公司/今日最新消息新闻报道
  • 中国航空港建设总公司网站/企业如何注册自己的网站
  • 私人公司怎么做网站/网络公司推广公司
  • 艺术网站定制/怎么做网站宣传
  • wordpress主题如何更换/网站如何优化流程
  • 如何做卖衣服的网站/电商关键词工具
  • 小型电商网站模板/app宣传推广方案
  • 邢台做移动网站公司/百度收录批量查询工具
  • 建站系统下载 discuz/热点事件
  • 做网赚类网站违法吗/温州百度推广公司电话
  • 网站建设方案书写/小广告图片
  • 家电网站建设需求分析/免费的网站软件下载
  • 正规网站建设学习网公司哪家好/电脑速成班短期电脑培训班
  • o2o网站建站/互联网舆情监控系统
  • 北京如何做网站/河源今日头条新闻最新
  • 番禺做网站的/怎么百度推广
  • 建设部网站注册中心/广告商对接平台
  • wordpress页面编辑/seo海外