前言:要么出击,要么出局,命运女神总会眷顾拼劲全力的一方

 

相关文章:

《Android自定义控件三部曲文章索引》:http://blog.csdn.net/harvic880925/article/details/50995268

 

这节我们将学到如下内容:

  • 传统地给按钮添加阴影的方法
  • 如何给已有控件添加阴影
  • 如何给图片添加阴影

一、layerlist给按钮添加阴影效果

 

给控件添加阴影有很多方法,但平常我们给按钮添加阴影最常用的就是使用layerlist多层绘图来添加阴影效果,我们先来看一下给按钮添加的阴影效果图:

 

 

从效果图中可以明显看出,按钮的外围多了一圈灰色的阴影效果。
在开始做阴影效果之前,我们先讲解一下有关layerlist的知识。
在xml中,我们有常用的几个标签:shape、selector、layerlist;

  • shape标签:以前我们讲过,就是利用代码绘制出背景效果,可以定义填充色、描边、圆角、渐变等。不了解的同学可以参考下:《详解shape标签》 
  • selector标签:用于定义在用户不同的动作状态下,使用不同的背景值。有关selector的知识,博主没有讲过,也不打算再讲了,难度不大,自己搜几个帖子就能学会了。
  • layerlist标签:这个标签的主要作用就是将多个图层按照顺序叠起来,做为一个背景图来显示。

1、layerlist示例:

 

layerlist标签就是模拟Photoshop中图层的概念,把每一张图层按照顺序叠加起来,做为背景图来显示;
我们先来看一下简单的例子,我们要显示一下两只蜗牛的图片:

 

 

它由三张图片组成:
一张纯蓝色的背景:(blog1_1.png)

一只黄蜗牛:(blog1_2.png)

一只土色蜗牛:(blog1_3.png)

我们先定义一个layerlist的文件(shade.xml)

 

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/blog1_1"/><item android:drawable="@drawable/blog1_2"/><item android:drawable="@drawable/blog1_3"/>
</layer-list>

 

这里分别将上面的三张图片做为item添加给layer-list;效果图就是一开始演示的那样。layer-list使用起来很简单,只需要把每一层设置为其中的item即可。
有一点需要注意,layer-list标签的Item中不仅可以设置drawable,也可以设置shape、selector,我们下面一一做下尝试:

 

2、layer-list与shape标签

 

编写控件阴影drawable代码
上面我们使用使用的是layer-list中item的drawable属性来直接引入图片,其实除了drawable属性,item还有另外几个属性:

 

  • android:top 顶部的偏移量
  • android:bottom 底部的偏移量
  • android:left 左边的偏移量
  • android:right 右边的偏移量

这四个偏移量和控件的margin设置差不多,都是外间距的效果。如果不设置偏移量,前面的图层就完全挡住了后面的图层,从而也看不到后面的图层效果了。
言归正转,先来看看如何在layer-list中使用shape标签:

 

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item><shape><corners android:radius="25dp"/><solid android:color="#E4E4E4"/></shape></item><item android:left="2dp" android:top="2dp"android:bottom="2dp" android:right="2dp"><shape><corners android:radius="25dp"/><solid android:color="#FFFFFF"/></shape></item>
</layer-list>

上面的代码实现的效果是这样的:

 

 

 

大家看到类似阴影的效果了吧,不错,这段代码就是实现按钮阴影的代码,我们来仔细看一下
首先,它使用layer-list将两层shape叠加在一起,底部的shape代码为:

 

<item><shape><corners android:radius="25dp"/><solid android:color="#E4E4E4"/></shape>
</item>

底部是一个灰色的矩形,它的四个角被圆角化,并且填充为灰色。
上层绘制的shape对应的代码为:

 

<item android:left="2dp" android:top="2dp"android:bottom="2dp" android:right="2dp"><shape><corners android:radius="25dp"/><solid android:color="#FFFFFF"/></shape>
</item>

它同样绘制的是一个四个角都被圆角化的矩形,但填充颜色是纯白色。为了露出底层的灰色阴影,我们需要给上层的shape加上边距,这也就是item的 android:left=”2dp” android:top=”2dp” android:bottom=”2dp” android:right=”2dp”这四个属性的作用,相当于margin的作用。
使用阴影drawable
在写好layer-list以后,我们需要在按钮控件中使用它:

 

<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dp"android:layout_margin="10dp"android:background="@drawable/layer_shape_list"android:text="带阴影的按钮"android:textColor="#ff0000"/>

我们来看下效果:

 

 

 

从效果图中可以看到,我们虽然实现了带阴影的按钮效果,但是在点击时却没有任何状态变化,这对于按钮是完全不能接受的,所以我们需要给按钮添加上状态变化,这就需要用到selector标签了

3、layer-list与selector标签

改造方法一:使用layer-list做根结点
下面我们对上面shape的代码进行改造,当用户手指按下的时候,将前景色改为黄色,代码为:

 

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item><shape><corners android:radius="25dp"/><solid android:color="#E4E4E4"/></shape></item><item android:left="2dp" android:top="2dp"android:bottom="2dp" android:right="2dp"><selector><item android:state_pressed="true"><shape><corners android:radius="25dp"/><solid android:color="#FFFF00"/></shape></item><item><shape><corners android:radius="25dp"/><solid android:color="#FFFFFF"/></shape></item></selector></item>
</layer-list>

我们先来看一下效果,然后再来看代码

 

这里明显实现了当用户点击时前景变化的功能。下面我们再来讲解下代码
首先,这里同样是绘制两层layer,第一层,依然是阴影层,代码没动:

 

 

<item><shape><corners android:radius="25dp"/><solid android:color="#E4E4E4"/></shape>
</item>

在第一层绘制完成以后,当绘制第二层时就出现问题了:

<item android:left="2dp" android:top="2dp"android:bottom="2dp" android:right="2dp"><selector><item android:state_pressed="true"><shape><corners android:radius="25dp"/><solid android:color="#FFFF00"/></shape></item><item><shape><corners android:radius="25dp"/><solid android:color="#FFFFFF"/></shape></item></selector>
</item>

第二层中,会对当前用户状态做判断,如果用户当前是按下状态,则绘制:

<item android:state_pressed="true"><shape><corners android:radius="25dp"/><solid android:color="#FFFF00"/></shape>
</item>

如果是其它状态,则绘制默认图像:

<item><shape><corners android:radius="25dp"/><solid android:color="#FFFFFF"/></shape>
</item>

所以对于layer-list标签,从这里也可以看出来:它的绘制是逐层绘制的,层与层之间是没有任何影响的,每一层可以单独设置selector标签来响应不同的用户操作状态。
改造方法二:使用selector做根结点
上面我们使用layer-list来做根结点来绘制出按钮的不同状态响应的效果,对selector、layer-list使用熟悉的同学,应该还可以想到另一种实现方式,使用selector做为根结点来实现响应不同用户操作。
我们先直接上代码吧:

 

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true"><layer-list><item><shape><corners android:radius="25dp"/><solid android:color="#E4E4E4"/></shape></item><item android:left="2dp" android:top="2dp"android:bottom="2dp" android:right="2dp"><shape><corners android:radius="25dp"/><solid android:color="#FFFF00"/></shape></item></layer-list></item><item><layer-list><item><shape><corners android:radius="25dp"/><solid android:color="#E4E4E4"/></shape></item><item android:left="2dp" android:top="2dp"android:bottom="2dp" android:right="2dp"><shape><corners android:radius="25dp"/><solid android:color="#FFFFFF"/></shape></item></layer-list></item></selector>

同样我们先来看一下使用代码与效果,然后再来讲解实现原理:
使用方法,同样是做为background引入:

<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dp"android:layout_margin="10dp"android:background="@drawable/selector_layer_list"android:text="Selector为根的按钮"android:textColor="#ff0000"/>

效果图如下:

 

很明显,实现了与上面layer-list标签为根同样的效果,我们现在来看一下代码原理:
代码看起来很长,很唬人,其实原理很简单,它就是根据当前不同的状态,绘制不同的图形,当用户是按压状态时,通过layer-list绘制出一下最上层是黄色,底层是灰色的按钮背景图像:

 

<item android:state_pressed="true"><layer-list><item><shape><corners android:radius="25dp"/><solid android:color="#E4E4E4"/></shape></item><item android:left="2dp" android:top="2dp"android:bottom="2dp" android:right="2dp"><shape><corners android:radius="25dp"/><solid android:color="#FFFF00"/></shape></item></layer-list>
</item>

然后在其它状态时,绘制一个前景色是白色,背景色是灰色的按钮背景图:

<item><layer-list><item><shape><corners android:radius="25dp"/><solid android:color="#E4E4E4"/></shape></item><item android:left="2dp" android:top="2dp"android:bottom="2dp" android:right="2dp"><shape><corners android:radius="25dp"/><solid android:color="#FFFFFF"/></shape></item></layer-list>
</item>

 

这部分代码难度不大,就不再讲了。

 

4、存在问题

由于使用layer-list标签实现的阴影只能做为background引入,所以如果对你是文字时,它的阴影效果就变成了这样:

 

<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="文字的阴影效果"android:layout_margin="10dp"android:padding="10dp"android:background="@drawable/layer_shape_list"/>

对应效果图为:

 

 

 

看起来跟按钮一个样 - _ -!!! 很囧有没有,文字的阴影应该是这样的才对:

所以我们下面就要开始讲解如何实现文字的阴影效果啦,嘿嘿

二、Paint.setShadowLayer实现阴影效果

 

上面我们讲了利用layer-list只能实现按钮的阴影效果,对于文字和图片都无法实现阴影效果,除了layer-list,我们只能用自定义控件来实现阴影效果了,Paint中有一个专门用来实现阴影效果的函数setShadowLayer,我们先来看看这个函数实现的阴影效果图:

 

 

从效果图中可以看出setShadowLayer函数能够实现:

  • 定制阴影模糊程度
  • 定制阴影偏移距离
  • 清除阴影和显示阴影

1、setShadowLayer构造函数

看起来setShadowLayer好像能够完成阴影定制的方方面面,我们先来看看它的构造函数:

 

 

 

 

public void setShadowLayer(float radius, float dx, float dy, int color)

 

它参数的意义如下:

 

  • float radius:意思是模糊半径,radius越大越模糊,越小越清晰,但是如果radius设置为0,则阴影消失不见;有关清除阴影的问题,下面我们会专门讲。
  • float dx:阴影的横向偏移距离,正值向右偏移,负值向左偏移
  • float dy:阴影的纵向偏移距离,正值向下偏移,负值向上偏移
  • int color:绘制阴影的画笔颜色,即阴影的颜色(对图片阴影无效)

 

我们这里需要着重讲两个点:一个是模糊半径,另一个是绘制阴影的画笔颜色为什么对图片无效:
模糊半径的具体意义:
setShadowLayer使用的是高斯模糊算法,高斯模糊的具体算法是:对于正在处理的每一个像素,取周围若干个像素的RGB值并且平均,然后这个平均值就是模糊处理过的像素,如果对图片中的所有像素都这么处理的话,处理完成的图片就会变得模糊。
取周围像素的半径就是模糊半径.很容易知道,模糊半径越大,所得平均像素与原始像素相差就越大,也就越模糊
绘制阴影的画笔颜色为什么对图片无效
从上面的效果图中可以看出,使用setShadowLayer所产生的阴影,对于文字和绘制的图形的阴影都是使用自定义的阴影画笔颜色来画的,而图片的阴影则是直接产生一张相同的图片,仅对阴影图片的边缘进行模糊。
大家可能会疑问,会什么对图片的处理是生成一张相同的背景图片呢?这是因为为了给图片添加阴影,如果统一使用某一种颜色来做阴影可能会与图片的颜色相差很大,而且不协调,比如某张图片的色彩非常丰富,而阴影如果使用灰色来做,可能就会显得很突兀,所以为了解决这个问题,针对图片的阴影就不再是统一颜色了,而是复制出这张图片,把复制出的图片的边缘进行模糊,做为阴影;但这样又会引起一个问题,就是如果我们想把图片的阴影做成灰色怎么办?使用setShadowLayer自动生成阴影是没办法了,在下篇我们会具体来讲,如何给图片添加指定颜色的阴影。

注意:这里有一点需要非常注意的是setShadowLayer只有文字绘制阴影支持硬件加速,其它都不支持硬件加速,所以为了方便起见,我们需要在自定义控件中禁用硬件加速。

 

2、示例一:初步使用setShadowLayer

多说无益,还是直接来个例子比较实在,本次示例效果图如下:

 

 

 

这里实现了对文本,图形,Image的阴影效果;具体的代码如下:

 

public class ShadowLayerView extends View {private Paint mPaint = new Paint();private Bitmap mDogBmp;public ShadowLayerView(Context context) {super(context);init();}public ShadowLayerView(Context context, AttributeSet attrs) {super(context, attrs);init();}public ShadowLayerView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);init();}private void init(){setLayerType( LAYER_TYPE_SOFTWARE , null);mPaint.setColor(Color.GREEN);mPaint.setTextSize(25);mPaint.setShadowLayer(1, 10, 10, Color.GRAY);mDogBmp = BitmapFactory.decodeResource(getResources(),R.drawable.dog);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawText("启舰大SB",100,100,mPaint);canvas.drawCircle(200,200,50,mPaint);canvas.drawBitmap(mDogBmp,null,new Rect(200,300,200+mDogBmp.getWidth(),300+mDogBmp.getHeight()),mPaint);}
}

代码看起来很长,其实就是自定义了一个控件,在里面画了点东东;我们分别来看下吧
首先是初始化,在初始化时设置画笔的颜色

 

private void init(){setLayerType( LAYER_TYPE_SOFTWARE , null);mPaint.setColor(Color.GREEN);mPaint.setTextSize(25);mPaint.setShadowLayer(1, 10, 10, Color.GRAY);mDogBmp = BitmapFactory.decodeResource(getResources(),R.drawable.dog);
}

在初始化的时候,就是先禁用硬件加速,然后设置paint的属性,由于我们需要画图片,所以先把要画的图片加载进来。这里需要注意两个颜色:

 

mPaint.setColor(Color.GREEN);
mPaint.setShadowLayer(1, 10, 10, Color.GRAY);

mPaint.setColor指的是设置画笔的颜色是绿色,从效果图中也可以看出来画出来的字体和圆形都是绿色的
而mPaint.setShadowLayer中设置的 Color.GRAY,指的是阴影的颜色,从效果图中也明显可以看出,字体和阴影的颜色都是灰色的。
然后就是onDraw的绘图部分了,这里就没什么好讲的了,如果从头看到这里的话,canvas的操作应该很熟练了;

 

3、示例二:setShadowLayer各参数意义

下面我们就来实现一下这部分开篇时的效果,动态添加setShadowLayer中的各个参数,就可以明显看出来它们的作用:
在上面的代码上面,我们讲setShadowLayer变成了动态设置,代码如下:

 

 

public class ShadowLayerView extends View {private Paint mPaint = new Paint();private Bitmap mDogBmp;private int mRadius = 1,mDx = 10,mDy = 10;public ShadowLayerView(Context context) {super(context);init();}public ShadowLayerView(Context context, AttributeSet attrs) {super(context, attrs);init();}public ShadowLayerView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);init();}private void init(){setLayerType( LAYER_TYPE_SOFTWARE , null);mPaint.setColor(Color.GREEN);mPaint.setTextSize(25);mDogBmp = BitmapFactory.decodeResource(getResources(),R.drawable.dog);}public void changeRadius() {mRadius++;postInvalidate();}public void changeDx() {mDx+=5;postInvalidate();}public void changeDy() {mDy+=5;postInvalidate();}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);mPaint.setShadowLayer(mRadius, mDx, mDy, Color.GRAY);canvas.drawText("启舰大SB",100,100,mPaint);canvas.drawCircle(200,200,50,mPaint);canvas.drawBitmap(mDogBmp,null,new Rect(200,300,200+mDogBmp.getWidth(),300+mDogBmp.getHeight()),mPaint);}
}

这段代码难度并不大,只是将 mPaint.setShadowLayer中的各参数写成了变量,并向外暴露了几个接口changeRadius()、changeDx()、changeDy();当外部调用这些接口时,增加对应的变量,并且重绘控件;
由于每次重绘控件都肯定会调用onDraw方法,所以,我们将mPaint.setShadowLayer的设置放到onDraw方法里来,以确保每次重绘时mPaint.setShadowLayer的设置都会被更新。
在使用时:

 

public class MyActivity extends Activity implements View.OnClickListener{private ShadowLayerView mShadowLayerView;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);mShadowLayerView = (ShadowLayerView)findViewById(R.id.shadowlayerview);findViewById(R.id.radius_btn).setOnClickListener(this);findViewById(R.id.dx_btn).setOnClickListener(this);findViewById(R.id.dy_btn).setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.radius_btn:mShadowLayerView.changeRadius();break;case R.id.dx_btn:mShadowLayerView.changeDx();;break;case R.id.dy_btn:mShadowLayerView.changeDy();break;}}
}

使用代码很简单,就不再讲了。
效果图如下:

 

 

 

从效果图中可以明显看到各个参数的区别,但正是通过效果图,我们可以明显得看出两个结论:

  • 1、图片的阴影是不受阴影画笔颜色影响的,它是一张图片的副本;
  • 2、无论是图片还是图形,模糊时,仅模糊边界部分,随着模糊半径的增大,向内、向外延伸;其实很好理解这个问题:由于模糊半径的增大,高斯模糊向周边取值的范围在增大,所以向内、向外延伸的距离就会更大

4、Paint.clearShadowLayer()清除阴影

上面我们讲解了使用setShadowLayer添加阴影的问题,下面我们再来看看如何清除阴影的。清除阴影其实有两个方法,可以将setShadowLayer的radius的值设为0,也可以使用专门的清除阴影的函数:

 

 

 

 

//Paint系函数:清除ShadowLayer阴影
public void clearShadowLayer() 

将setShadowLayer的radius的值设为0来清除阴影的用法,我这里就不再演示了,大家可以自己试试,我们这里尝试下使用clearShadowLayer() 来清除阴影的用法。
在上面函数的基础上,我们另外添加一个变量来控制当前是否显示阴影:

 

public class ShadowLayerView extends View {…………private boolean mSetShadow = true;…………public void clearShadow(){mSetShadow = false;postInvalidate();}public void showShadow(){mSetShadow = true;postInvalidate();}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);if (mSetShadow) {mPaint.setShadowLayer(mRadius, mDx, mDy, Color.GRAY);}else {mPaint.clearShadowLayer();}canvas.drawText("启舰大SB",100,100,mPaint);canvas.drawCircle(200,200,50,mPaint);canvas.drawBitmap(mDogBmp,null,new Rect(200,300,200+mDogBmp.getWidth(),300+mDogBmp.getHeight()),mPaint);}
}

修改的代码很简单,增加一个变量mSetShadow来控制当前是否显示阴影,如果需要显示阴影就调用mPaint.setShadowLayer(mRadius, mDx, mDy, Color.GRAY);设置阴影,如果不需要显示阴影就调用mPaint.clearShadowLayer();来清除阴影;
对于使用btn调用clearShadow()、showShadow()这两个接口的用法,就不再帖代码了,没啥难度,源码里也有;
效果图如下:

 

 

 

在目前的所有例子中,我们的定义控件在xml中使用时,layout_widht、layout_height都统一设置成match_parent或者fill_parent来强制全屏;是时间教大家如何使用wrap_content属性,如何让控件自已计算高度了,下篇我们就来看看这个问题。

源码在文章底部给出

三、TextView及其派生类使用ShadowLayer添加阴影效果

 

上面我们通过自定义控件来实现了自定义阴影效果,那么问题来了,如果我需要给已有的控件添加阴影效果,实现下面这样的效果:

 

 

 

1、XML实现

 

从上面可以看到,TextView,Button,EditView中的文字都具有阴影效果。那是怎么实现的呢?难道我们需要在原生控件的甚而上派生一个类在onDraw里使用setShadowLayer来绘制阴影吗?
答案当然不是,setShadowLayer是API 1 就已经引入的方法,同样,对于TextView和从TextView派生的类都自然具体XML属性来设置阴影。这几个设置阴影的XML属性如下:

 

 

 

<TextView…………android:shadowRadius="3"android:shadowDx="5"android:shadowDy="5"android:shadowColor="@android:color/darker_gray"/>

这几个属性的意义非常容易理解,直接对应setShadowLayer的几个参数setShadowLayer(float radius, float dx, float dy, int color),但这几个属性只有TextVIew及其派生类才会有,其它类是没有的,TextVIew的派生类如下:

 

 

 

所以一般我们使用的Button和EditText是可以使用Xml来实现阴影的。

2、代码实现

既然能通过XML实现,当然也能会代码版了,TextView及其派生类,都有一个Paint.setShadowLayer的同名方法:

 

 

 

 

//TextView中的设置阴影函数
public void setShadowLayer(float radius, float dx, float dy, int color) 

通过该方法就很容易来实现TextView及其派生类的阴影了。
使用示例如下:

TextView tv = (TextView)findViewById(R.id.tv);
tv.setShadowLayer(2,5,5, Color.GREEN);

 

效果与上面的一样,这里就不再讲了,源码里都会有。

 

源码在文章底部给出

四、SetMaskFilter之BlurMaskFilter实现发光效果

前面我们讲了如何给控件添加阴影效果,其它跟阴影效果类似的还有一个发光效果:

 

 

 

上面就是我们这节要讲的发光效果,在这个效果图中,总共涉及了三个内容的发光效果:文字、图形和Bitmap图像。
从最后一个小狗的Bitmap所形成的发光效果中可以看到,与setShadowLayer一样,发光效果也只会影响边缘部分图像,内部图像是不受影响的。
从第三个图形(红绿各一半的Bitmap)中可以看到:发光效果是无法指定发光颜色的,采用边缘部分的颜色取样来进行模糊发光。所以边缘是什么颜色,发出的光也就是什么颜色的。
所以初步我们对发光效果有如下结论:

  • 与setShadowLayer一样,发光效果也是使用的高斯模糊,并且只会影响边缘部分图像,内部图像是不受影响的
  • 发光效果是无法指定发光颜色的,采用边缘部分的颜色取样来进行模糊发光。所以边缘是什么颜色,发出的光也就是什么颜色的。

1、SetMaskFilter之BlurMaskFilter概述

Paint函数的的setMaskFilter声明如下:

 

public MaskFilter setMaskFilter(MaskFilter maskfilter)

 

前面我们讲到setColorFilter来设置颜色滤镜,与setColorFilter一样,setMaskFilter中的MaskFilter也是没有具体实现的,也是通过派生子类来实现具体的不同功能的,MaskFilter有两个派生类BlurMaskFilter和EmbossMaskFilter,其中BlurMaskFilter就是我们这段要讲的实现发光效果的子类,而EmbossMaskFilter是用来实现浮雕效果的,用处很少,这里就不再讲了。另一点需要注意的是,setMaskFilter是不支持硬件加速的,必须关闭硬件加速才可以。
BlurMaskFilter的构造函数如下:

 

public BlurMaskFilter(float radius, Blur style)

 

其中:

 

  • float radius:用来定义模糊半径,同样是高斯模糊算法。
  • Blur style:发光样式,有内发光、外发光、和内外发光,分别对应:Blur.INNER(内发光)、Blur.SOLID(外发光)、Blur.NORMAL(内外发光)、Blur.OUTER(仅发光部分可见),这几个模式,后面我们会逐个来展示用法。

下面我们简单举一个例子来看看用法先,这个例子的代码如下:

 

public class BlurMaskFilterView extends View {private Paint mPaint;public BlurMaskFilterView(Context context) {super(context);init();}public BlurMaskFilterView(Context context, AttributeSet attrs) {super(context, attrs);init();}public BlurMaskFilterView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);init();}private void init(){setLayerType(LAYER_TYPE_SOFTWARE,null);mPaint = new Paint();mPaint.setColor(Color.RED);mPaint.setMaskFilter(new BlurMaskFilter(50, Blur.INNER));}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawCircle(200,200,100,mPaint);}
}

这里使用起来非常容易,只需要在paint的时候调用setMaskFilter将BlurMaskFilter的实例设置进行就可以了。这里使用的内发光模式。我们来看下效果图:

 

 

 

很明显的内发光效果。下面我们分别来看看各种模式下的发光效果。

2、BlurStyle发光效果

 

(1)、Blur.INNER——内发光

 

 

(2)、Blur.SOLID——外发光

(3)、Blur.NORMAL——内外发光

(4)、Blur.OUTER——仅显示发光效果

Blur.OUTER比较特殊,这种模式下仅会显示发光效果,会把原图像中除了发光部分,全部变为透明!
大家是否可以看出来发光效果与setShadowLayer所生成的阴影之间有什么联系?
setShadowLayer所生成的阴影,其实就是将新建的阴影图形副本进行发光效果并且位移一定的距离而已。下篇我们就会利用这个原理来生成图片指定颜色的阴影效果。

到这里,这篇文章就结束了,下篇将继续给大家讲解如何给图片添加指定颜色的阴影效果,并且初步教大家如何将其封装成一个控件。

 

 

如果本文有帮到你,记得加关注哦

源码下载地址:http://download.csdn.net/detail/harvic880925/9566615

请大家尊重原创者版权,转载请标明出处:http://blog.csdn.net/harvic880925/article/details/51818489 谢谢

 

如果你喜欢我的文章,你可能更喜欢我的公众号

启舰杂谈

 

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. APICloud(七):清除缓存、退出系统、返回到上一级、下拉刷新页面、返回到顶部...

    1、清除缓存: /***该方法用来清除最近一周的缓存 * **/ function clearCache(){api.actionSheet({title:"系统会永久删除此应用的所有数据,包括下载的文件、拍照临时文件、网页缓存文件等.清除时可能需要消耗一定时间。请耐心等候。",cancelTitle:"取消"…...

    2024/4/8 20:47:39
  2. 逝去的绝响

    很多人不在江湖了,但江湖有他们的传说。他们不必为谁道歉,他们挥洒的是自己的生命。只是偶尔经常回首的时候,一颗波澜不惊的雄心,一束只有起点没有终点的射线,一抹云展云舒花开花落的微笑,总是在不经意间给周遭以恢弘的压迫。人生的华彩就这样流转。流星已经划过,天空已…...

    2024/4/13 0:23:06
  3. Ubuntu12.04-server安装SSH及其使用

    #安装环境系统版本:Ubuntu12.04 server版(amd64)作者:King#SSH介绍SSH 是Secure Shell的缩写,SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。…...

    2024/4/27 9:37:01
  4. 在Web中如何使用Windows控件?

    最近做的一个Web版的视频会议项目,需要在网页中播放来自远程摄像头采集的实时视频,我们已经有了播放远程实时视频的使用C#编写的windows控件,如何将其嵌入到网页中去了?这需要使用一种古老的技术,ActiveX。1.将.Net控件转化为ActiveX控件首先要做的就是将我们的windows视频…...

    2024/4/16 2:43:55
  5. RecyclerView 内部嵌套RecyclerView 导致点击Item后返回时自动滚动到顶部

    参考: https://blog.csdn.net/SkySmile1992/article/details/79261118 记录一下这个问题. 感谢百度.使用这行代码解决问题. recyclerView.setFocusableInTouchMode(false)...

    2024/4/13 0:23:42
  6. VB 动态创建ActiveX控件详解

    熟悉VB的朋友对使用ActiveX控件一定不会陌生,众多控件极大地方便了编程,但唯一的缺陷是不能动态加载控件,必须在设计时通过引用,将控件放置在窗体上。VB6.0已能够解决该问题,只是帮助中没有明确说明,并且没有描述到一些关键功能,由于以前的版本中可以动态创建进程外服务…...

    2024/4/13 0:23:47
  7. Ubuntu安装ssh服务器

    sudo apt-get install openssh-server开启端口22:sudo ufw allow 22...

    2024/4/13 0:23:57
  8. vue中使用element UI中的组件 回到顶部

    开发框架是vue+webpack+element-ui,需要一个回到顶部的通用组件。HTML:这里使用了一个进入动画<template><transition name="el-fade-in"><div class="page-up" @click="scrollToTop" v-show="toTopShow"><i cl…...

    2024/4/8 20:47:32
  9. DNF NPK包名对照一览表

    文章转载自:http://bbs.exrpg.com/thread-107917-1-1.html┌ sprite.NPK 登陆界面├ sprite_character.NPK 默认角色头像和角色轮廓├ sprite_character_common.NPK …...

    2024/4/13 14:56:34
  10. ubuntu 14.04 ssh连接失败解决---离线安装openssh_server

    1. 在联网机器上下载 deb 包,因为我的离线机器为 Ubuntu14.04 64位 所以对应下载 amd64 Trusty 包,以下为需要下载的 openssh-server 及安装依赖的 deb 包名称。openssh-server_6.6p1-2ubuntu2.10_amd64.debopenssh-client_6.6p1-2ubuntu2.10_amd64.debopenssh-sftp-server_6…...

    2024/4/13 0:23:57
  11. 图形用户界面设计-基本控件 java实验报告第四个

    第一个: 编写程序包含一个标签、一个文本框和一个按钮,当用户单击按钮时,程序把文本框中的内容复制到标签中。 我用SWT写的如下: import java.awt.*; import java.awt.event.*;import javax.swing.*;public class HelloWorldSwing {public static void main(String[] args)…...

    2024/4/17 20:48:42
  12. 移动端获取手机自带的返回键并添加事件。

    在当前的项目中,由于是移动端的项目,在手机上会有自带的返回键这时候就需要获取按键来进行返回事件。项目中运用的是vue。在单页面中会展示当前的文件信息,如是文件夹则可以点击查看它的子级文件。当我们想返回上一级文件的时候可以点击左上角的返回按钮,这是在项目中抒写好…...

    2024/4/13 0:23:37
  13. Ubuntu 安装配置SSH(ssh: connect to host localhost port 22: Connection refused问题的解决)

    为什么要安装SSH?因为在Hadoop启动以后,namenode是通过SSH(Secure Shell)来启动和停止各个节点上的各种守护进程的。作为一个菜鸟,第一次使用Hadoop,安装配置有点复杂,到Ubuntu配置SSH这一步时,有点问题,经过琢磨后,发现了奥秘,现在把自己的一些心得分享下。Ubuntu默…...

    2024/4/8 20:47:30
  14. Qt布局交换两个控件位置

    思路就是找到两个控件在布局中的索引,然后交换,交换完成后重新设置布局。 int index1 = ui->gridLayout->indexOf(widgets.at(6)); int index2 = ui->gridLayout->indexOf(widgets.at(0)); QLabel *lab = widgets.at(index1); widgets[index1] = widgets.at(inde…...

    2024/4/8 20:47:30
  15. Android之双击回到顶部

    双击回到顶部在Android应用中用的很多,众所周知的微信消息列表,朋友圈都提供这样的效果,下面我将自己自项目中的实践记录下来,分享给大家 首先:获取双击事件 网上有很多的获取双击事件的方法,这里我讲它稍加封装,整个工程也可以使用 首先我们来定义双击事件的接口 packa…...

    2024/4/19 20:47:26
  16. 这是什么一个可以升级的系统 可为什么没有说明书 自己摸索 你玩儿我吧 一个得到了一套可以升级的军事系统的年轻人,以后路就应该坑到底

    日不落文学原文 “林海,你丫跑……跑那么快……快干……干什么!”深夜的沪市一条小巷中,七八个年轻人上气不接下气的小声咒骂中,所有人身上都是衣杉不整,有几个脸上还有淤青。 “废话!咱们是打架啊!被警察叔叔抓到,让学校知道,我们不都得记大过!说不定还会被开了!”…...

    2024/4/13 0:23:47
  17. Docker中Ubuntu镜像添加openssh-server服务

    2019独角兽企业重金招聘Python工程师标准>>> Docker中Ubuntu镜像添加openssh-server服务 博客分类: docker Docker中Ubuntu镜像添加openssh-server服务,有需要的朋友可以参考下。 1,首先,需要从docker官网获得centos或Ubuntu镜像 2,当本地已有Ubuntu镜像后(大…...

    2024/4/20 0:49:09
  18. C#创建不规则窗体和控件

    C#创建不规则窗体和控件作者:贝塔乐队的吉他手 在 以前版本的Visual Basic或Visual C++中,创建不规则窗体和控件是一件很复杂的事,不仅需要调用大量API函数而且工作量也不小。不过,现在在Visual C#下,情况就完全不同了。运用Windows Forms你就可以很轻易地创建出一个不规则…...

    2024/4/19 16:20:59
  19. Android两行代码实现仿微信滑动返回效果

    iPhone滑动关闭页面是一个非常讨喜的设计。滑动关闭可以让你聚焦屏幕内容,而不需要因为返回突然切换思维到屏幕下方寻找返回按钮。事实上,在使用Android手机的时候,我经常这样做。原因是,Android不同机型的返回按钮位置不一样。以至于在更换机型后我常常找不到返回按钮,需…...

    2024/4/16 22:42:22
  20. 控件(五)——Gridview控件以SqlDataSource控件为数据源实现换肤功能

    皮肤是应用到一个控件上的样式信息,这些内容保存在.skin文件中。然后控件在使用皮肤时,设置它的skinID属性。如果不设置,它会自动设置为默认值。 主题实际上是皮肤的集合,保存在Thremes子目录中。我们在default.aspx页面上最上一行中增加Theme="blue"。也可以在配…...

    2024/4/13 0:23:52

最新文章

  1. JS----前端将列表数据转树型数据

    前端将列表数据转树型数据 场景&#xff1a;后端返回列表数据&#xff0c;由前端根据业务需求完成树型数据转换&#xff0c; 常用于侧边导航菜单&#xff0c;下拉树型数据项等 export function listToTree(data: []) {var map: any {},tree: any []data.forEach((item: any…...

    2024/4/27 21:46:30
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 大唐杯历届省赛押题训练(6)

    考试-呼叫建立流程 一、单选题 1下面关于T-ADS被叫域选择下面说法正确的是( )1分/1分 A、被叫域选择是由MME发起的信令过程 B、T-ADS,过程是AS向3合1融合数据库查询T-ADS信息的过程 C、被叫域选择由主叫UE发起的域选择过程 D、主要是解决主叫驻留在那个网络的问题 提…...

    2024/4/26 5:44:47
  4. 外包干了4年,技术退步明显。。。。

    说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入上海某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&a…...

    2024/4/24 11:54:16
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/26 20:12:18
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/27 4:00:35
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/26 21:56:58
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/27 9:01:45
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/25 18:39:16
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/26 22:01:59
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/25 2:10:52
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/25 18:39:00
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57