导航:首页 > 操作系统 > android控件加阴影效果

android控件加阴影效果

发布时间:2022-07-10 02:23:00

android 上阴影效果怎么做

设置阴影需要按照以下步骤:
1、设置eleavation值;
2、添加一个背景或者outline。
可以在xml中通过定义一个背景来设置outline:
<TextView
android:id="@+id/myview"
...
android:elevation="2dp"
android:background="@drawable/myrect" />
<!-- res/drawable/myrect.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#42000000" />
<corners android:radius="5dp" />
</shape>

也可以通过代码来创建一个outline:
/* Get the size of the shape from resources. */
int shapeSize = getResources().getDimensionPixelSize(R.dimen.shape_size);

/* Create a circular outline. */
mOutlineCircle = new Outline();
mOutlineCircle.setRoundRect(0, 0, shapeSize, shapeSize, shapeSize / 2);

/* Create a rectangular outline. */
mOutlineRect = new Outline();
mOutlineRect.setRoundRect(0, 0, shapeSize, shapeSize, shapeSize / 10);

安卓怎么在linearLayout或者其他一些组件底部添加阴影

有两种解决方案:

1、使用9-patch 图片,制作一个阴影部分的图片,然后横向拉伸即可


2、使用layer-list

<?xmlversion="1.0"encoding="utf-8"?>
<layer-listxmlns:android="http://schemas.android.com/apk/res/android">

<!--bottomshadow-->
<item>
<shapeandroid:shape="rectangle">
<!--fromtoptobottom-->
<gradient
android:angle="90"
android:centerColor="#bbbbbb"
android:endColor="#d5d5d5"
android:startColor="#a9a09d"/>
<cornersandroid:radius="5dp"/>
</shape>
</item>

<!--content-->
<itemandroid:bottom="2dp">
<shapeandroid:shape="rectangle">
<solidandroid:color="#50c1e9"/>
<cornersandroid:radius="5dp"/>
</shape>
</item>

</layer-list>

假设有bottom_shadow.xml文件,内容如下:

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#bfbfbf">

<LinearLayout
android:layout_marginTop="40dp"
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="vertical"
android:background="@drawable/background_with_shadow">
</LinearLayout>

<TextView
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="活动海报"/>

</LinearLayout>

Ⅲ android button为什么会用阴影

<?xmlversion="1.0"encoding="utf-8"?>
<!--layer-list设置图层效果:每一个item是一张图层,从下往上叠放-->
<layer-listxmlns:android="http://schemas.android.com/apk/res/android">

<!--阴影部分-->
<!--个人觉得更形象的表达:top代表下边的阴影高度,left代表右边的阴影宽度。其实也就是相对应的offset,solid中的颜色是阴影的颜色,也可以设置角度等等-->
<item
android:left="2dp"
android:top="2dp">
<shapeandroid:shape="rectangle">
<gradient
android:angle="270"
android:endColor="#0F000000"
android:startColor="#0F000000"/>

<corners
android:bottomLeftRadius="6dip"
android:bottomRightRadius="6dip"
android:topLeftRadius="6dip"
android:topRightRadius="6dip"/>
</shape>
</item>

<!--背景部分-->
<!--形象的表达:bottom代表背景部分在上边缘超出阴影的高度,right代表背景部分在左边超出阴影的宽度(相对应的offset)-->
<item
android:bottom="3dp"
android:right="3dp">
<shapeandroid:shape="rectangle">
<gradient
android:angle="270"
android:endColor="#FFFFFF"
android:startColor="#FFFFFF"/>

<corners
android:bottomLeftRadius="6dip"
android:bottomRightRadius="6dip"
android:topLeftRadius="6dip"
android:topRightRadius="6dip"/>
</shape>
</item>

</layer-list>

Ⅳ android 文字怎么加阴影效果 怎么无效

Android:shadowColor 阴影颜色

android:shadowDx 阴影的水平偏移量

android:shadowDy 阴影的垂直偏移量

android:shadowRadius 阴影的范围

为了统一风格和代码的复用,通常可以把这个样式抽取放入到style.xml文件中


<TextView
style="@style/textstyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="字体样式"
android:textSize="30sp"
android:textStyle="bold" />


样式实现:

<?xmlversion="1.0"encoding="utf-8"?>

<resources>

<stylename="textstyle">

<itemname="android:shadowColor">#ff0000ff</item>

<itemname="android:shadowRadius">10</item>

<itemname="android:shadowDx">5</item>

<itemname="android:shadowDy">5</item>

</style>

</resources>



关于android文字阴影,共有四个属性可以设置:

注意:阴影的半径必须设,为0时没有效果。

下面为改变x位移:

android:shadowColor="#ff000000" (前两位为透明度)

android:shadowDx="2"

android:shadowDy="0"

android:shadowRadius="1"


效果(向右为正):

下面为改变y位移:

android:textColor="#979790"

android:shadowColor="#ff000000"

android:shadowDx="0"

android:shadowDy="2"

android:shadowRadius="1"

效果(向下为正):

下面改变半径:

android:shadowDx="1"

android:shadowDy="1"

android:shadowRadius="1"

Ⅳ Android中画线加阴影的方法mPaint.setShadowLayer();为什么在android2.2上可以显示阴影,而4.0就不行。

我也遇到了同样的问题,因此搜到了你的提问。
通过一下午的努力,在网上搜,关于这方面的回答不多,然后看了外文的类似的问答,去Android developer guide 里Hardware Acceleration一节里找到了说明,然后询问用过的同事,忙着测试,最后算是解决了问题。
你在maminfest里需要画图的Activity里加上android:hardwareAccelerated="false",禁止使用硬件加速就可以了。文档里只是说禁止硬件加速会有不同的效果,但并没有解释为什么,因此还不清楚这样做的理论。

Ⅵ Android如何纯java代码实现字体阴影效果

Android实现纯java代码字体阴影效果,主要是通过activity的draw方法,进行重新绘制,如下代码:

packagecanvas.test;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.content.Context;
importandroid.graphics.Bitmap;
importandroid.graphics.BitmapFactory;
importandroid.graphics.Canvas;
importandroid.graphics.Color;
importandroid.graphics.Paint;
importandroid.graphics.PorterDuff;
importandroid.graphics.PorterDuff.Mode;
importandroid.graphics.PorterDuffXfermode;
importandroid.graphics.Rect;
importandroid.graphics.RectF;
importandroid.graphics.drawable.Drawable;
importandroid.view.View;
{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(newImageEffect(this));
}
classImageEffectextendsView{
Paintpaint;
publicImageEffect(Contextcontext){
super(context);
paint=newPaint();//初始化画笔,为后面阴影效果使用。
paint.setAntiAlias(true);//去除锯齿。
paint.setShadowLayer(5f,5.0f,5.0f,Color.BLACK);//设置阴影层,这是关键。
paint.setXfermode(newPorterDuffXfermode(Mode.SRC_IN));
}
@Override
publicvoidonDraw(Canvascanvas){
super.onDraw(canvas);
intposX=20;
intposY=50;
intPicWidth,PicHegiht;
Drawabledrawable=getResources().getDrawable(R.drawable.button);
Drawabledbe=getResources().getDrawable(R.drawable.button).mutate();//如果不调用mutate方法,则原图也会被改变,因为调用的资源是同一个,所有对象是共享状态的。
DrawabledrawTest=getResources().getDrawable(R.drawable.button);
Bitmapbmp=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);
//Rectrect=newRect(2*posX+PicWidth,2*posY+PicHegiht,2*posX+2*PicWidth,2*posY+2*PicHegiht);//此为理论上的阴影图坐标
Rectrect=newRect(2*posX+PicWidth+3,2*posY+PicHegiht+3,2*posX+2*PicWidth-2,2*posY+2*PicHegiht-2);
//由于图片的实际尺寸比显示出来的图像要大一些,因此需要适当更改下大小,以达到较好的效果
RectFrectF=newRectF(rect);
canvas.drawRoundRect(rectF,10f,10f,paint);//在原有矩形基础上,画成圆角矩形,同时带有阴影层。
canvas.drawBitmap(bmp,2*posX+PicWidth,2*posY+PicHegiht,null);//画上原图。
canvas.restore();
}
}
}

Ⅶ 怎么设置好看的阴影 android

TextView的属性: Android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web /email/phone/map/all) android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。 android:bufferType指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符,也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式,参见这里1、这里2。 android:capitalize设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView此属性说明。 android:cursorVisible设定光标为显示/隐藏,默认显示。 android:digits设置允许输入哪些字符。如“1234567890.+-*/% ()” android:drawableBottom在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。 android:drawableLeft在text的左边输出一个drawable,如图片。 android:drawablePadding设置text与drawable(图片)的间隔,与drawableLeft、 drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。 android:drawableRight在text的右边输出一个drawable。 android:drawableTop在text的正上方输出一个drawable。 android:editable设置是否可编辑。 android:editorExtras设置文本的额外的输入数据。 android:ellipsize设置当文字过长时,该控件该如何显示。有如下值设置:”start”—?省略号显示在开头;”end” ——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动) android:freezesText设置保存文本的内容以及光标的位置。 android:gravity设置文本位置,如设置成“center”,文本将居中显示。 android:hintText为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。此属性在 EditView中使用,但是这里也可以用。 android:imeOptions附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。这个在EditView中再详细说明,此处无用。 android:imeActionId设置IME动作ID。 android:imeActionLabel设置IME动作标签。 android:includeFontPadding设置文本是否包含顶部和底部额外空白,默认为true。 android:inputMethod为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。 android:inputType设置文本的类型,用于帮助输入法显示合适的键盘类型。在EditView中再详细说明,这里无效果。 android:linksClickable设置链接是否点击连接,即使设置了autoLink。 android:marqueeRepeatLimit在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为 marquee_forever时表示无限次。 android:ems设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度 android:maxEms设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。 android:minEms设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。 android:maxLength限制显示的文本长度,超出部分不显示。 android:lines设置文本的行数,设置两行就显示两行,即使第二行没有数据。 android:maxLines设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。 android:minLines设置文本的最小行数,与lines类似。 android:lineSpacingExtra设置行间距。 android:lineSpacingMultiplier设置行间距的倍数。如”1.2” android:numeric如果被设置,该TextView有一个数字输入法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EdtiView将详细说明。 android:password以小点”.”显示文本 android:phoneNumber设置为电话号码的输入方式。 android:privateImeOptions设置输入法选项,此处无用,在EditText将进一步讨论。 android:scrollHorizontally设置文本超出TextView的宽度的情况下,是否出现横拉条。 android:selectAllOnFocus如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。 TextView中设置后无效果。 android:shadowColor指定文本阴影的颜色,需要与shadowRadius一起使用。 android:shadowDx设置阴影横向坐标开始位置。 android:shadowDy设置阴影纵向坐标开始位置。 android:shadowRadius设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。 android:singleLine设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。如android:text="test_ singleLine " android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行 android:text设置显示文本. android:textAppearance设置文字外观。如 “?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。可设置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse android:textColor设置文本颜色 android:textColorHighlight被选中文字的底色,默认为蓝色 android:textColorHint设置提示信息文字的颜色,默认为灰色。与hint一起使用。 android:textColorLink文字链接的颜色. android:textScaleX设置文字之间间隔,默认为1.0f。 android:textSize设置文字大小,推荐度量单位”sp”,如”15sp” android:textStyle设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“”隔开 android:typeface设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3] android:height设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米) android:maxHeight设置文本区域的最大高度 android:minHeight设置文本区域的最小高度 android:width设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layout_width 的区别看这里。 android:maxWidth设置文本区域的最大宽度 android:minWidth设置文本区域的最小宽度

Ⅷ android 圆角边框 阴影边框怎么设置

所谓添加阴影,就是两个画布从重叠,上方的画布小于下方的画布,阴影颜色为下方的画布的颜色。
item 中shape 的属性 (rectangle:矩形;line:线性;oval:椭圆;ring:环形),默认为矩形
corners //设置圆角幅度,必须是在shape=rectangle的时候,corners才有效
<corners
Android:radius="dimension" //全部的圆角半径
android:topLeftRadius="dimension" //左上角的圆角半径
android:topRightRadius="dimension" //右上角的圆角半径
android:bottomLeftRadius="dimension" //左下角的圆角半径
android:bottomRightRadius="dimension" /> //右下角的圆角半径
eg:<corners android:radius="10dp" />
solid用以指定内部填充色
e.g:<solid android:color="color" />
gradient //定义渐变色,可以定义两色渐变和三色渐变,及渐变样式
linear(线性渐变)、radial(放射性渐变)、sweep(扫描式渐变), 在构造放射性渐变时,要加上android:gradientRadius属性(渐变半径),即必须指定渐变半径的大小才会起作用。
<gradient
android:type=["linear" | "radial" | "sweep"] //共有3中渐变类型
android:angle="integer" //渐变角度,必须为45的倍数,0为从左到右,90为从上到下
android:centerX="float" //渐变中心X的相当位置,范围为0~1
android:centerY="float" //渐变中心Y的相当位置,范围为0~1
android:startColor="color" //渐变开始点的颜色
android:centerColor="color" //渐变中间点的颜色,在开始与结束点之间
android:endColor="color" //渐变结束点的颜色
android:gradientRadius="float" //渐变的半径,只有当渐变类型为radial时才有效
android:useLevel=["true" | "false"] /> //使用LevelListDrawable时就要设置为true。设为false时才有渐变效果
stroke //这是描边属性,可以定义描边的宽度,颜色,虚实线等
<stroke
android:width="dimension" //描边的宽度
android:color="color" //描边的颜色 // 以下两个属性设置虚线
android:dashWidth="dimension" //虚线的宽度,值为0时是实线
android:dashGap="dimension" /> //虚线的间隔

Ⅸ android 怎么给button添加阴影

在button中添加elevation属性。注意一点:他的父控件要设置的大一点,不然显示不出来

Ⅹ android imageview怎样添加阴影

索性background放图片,View还是那么写试试看,setAlpha(100)已经有透明的效果了,不需要重复的设置了

阅读全文

与android控件加阴影效果相关的资料

热点内容
html输出php变量 浏览:215
黄金金箔折解压球 浏览:423
java正则表达式源码 浏览:471
win执行python脚本 浏览:307
怎么知道服务器型号 浏览:984
宜家电动窗帘下载什么app 浏览:129
程序员怎么变革 浏览:862
ins亚洲服务器地址 浏览:785
我们的孩子pdf 浏览:597
appstore软件怎么显示屏幕 浏览:12
2950服务器如何装系统 浏览:884
丰田花冠压缩比 浏览:501
我的世界如何买服务器 浏览:457
进不去我的世界服务器是怎么回事 浏览:902
女程序员的世界 浏览:538
博图fb源码 浏览:694
查手机游戏服务器ip地址 浏览:934
招商银行app无法登录怎么回事 浏览:249
png格式转换pdf格式 浏览:97
怎样制压缩包 浏览:601