Android自定义Shape的属性

时间:2022-10-20 03:59:35

Android xml资源文件中Shape的属性:

 solid

       描述:内部填充

       属性:android:color 填充颜色

  size

       描述:大小

       属性:

                 android:width 宽

                 android:height 高

 gradient

        描述:渐变色

        属性:

                   android:startColor渐变起始颜色

                   android:endColor渐变结束颜色

                   android:centerColor渐变中间颜色

                   android:angle 渐变的角度,angle=0时,渐变色是从左向右,然后逆时针方向转;当angle=90时,渐变色从上往下。angle必然是45的倍数

                   android:type 渐变类型:linear(线性)、radial(放射性,以开始色为中心)、sweep(扫描线式渐变)

                   android:userLevel如果要使用LevelListDrawable对象,就要设置为true。设置true无渐变色,false有渐变色

                   android:grdientRadial渐变半径,只有设置type为radial时,此值才生效

                   android:centerX 渐变中心X点坐标的相对位置

                   android:centerY 渐变中心Y点坐标的相对位置

stroke

        描述:描边

        属性:

                   android:width 描边宽度

                   android:color 描边颜色

                   android:dashwidth描边样式为虚线时的宽度,值为0时为实线,值大于0时为虚线

                   android:dashGap 描边为虚线时,虚线之间的间隔

corners

        描述:圆角

        属性:

                   android:radius 四个角半径值

                   android:topLeftRadius左上角半径值

                   android:topRightRadius右上角半径值

                   android:bottomLeftRadius右下角半径值

                   android:bottomRightRadius左下角半径值

padding

        描述:内边距

        属性:

                   android:left 左内边距

                   android:right 右内边距

                   android:top 上内边距

                   android:bottom 下内边距

 

附 

/////////////////////////////////////////////////// 

然后在Activity里,直接使用

Resources res =getResources();

String[] city=res.getStringArray(R.array.city);

////////////////////////////////////////////////////

DisplayMetrics dm=new DisplayMetrics();

//                   getWindowManager().getDefaultDisplay().getMetrics(dm);

//                   String strPM=dm.widthPixels+"*"+dm.heightPixels;//获取分辨率

                     /*Display display=getWindowManager().getDefaultDisplay();

                     Point size=new Point();//获取屏幕长宽

                     display.getSize(size);*/

 

///////////////////////////////////////////////////////////

透明度计算

AA(startColorstr的前两位)是代表不透明度的十六进制,00表示完全透明,FF就是全不透明,化成十进制的范围就是0~255,剩下的RRGGBB就是颜色的十六进制代码。如何把30%的不透明度转换成十六制呢?很简单,先计算#AA的的十进制x,x/255 = 3/10,解得x=3*255/10,然后再把x换算成十六进制,约等于4B。 

/////////////////////////////////////////////////////////////////

自定义对话框

Dialog dialog=new Dialog(this,R.style.dialog);

                     View view=getLayoutInflater().inflate(R.layout.classroom_info, null);

                     TextView txtJsName=(TextView)view.findViewById(R.id.txt_jsName);

                     TextView txtSiteCount=(TextView)view.findViewById(R.id.txt_siteCount);

                     TextView txtholdCount=(TextView)view.findViewById(R.id.txt_holdCount);

                     TextView txtsiteLeft=(TextView)view.findViewById(R.id.txt_siteLeft);

                     txtJsName.setText("第五教学楼101");

                     txtSiteCount.setText(21+"");

                     txtholdCount.setText(7+"");

                     txtsiteLeft.setText((21-7)+"");

                     dialog.setContentView(view);

                     dialog.setCanceledOnTouchOutside(true);

                     dialog.show();

对话框样式

 <style name="dialog" parent="@android:style/Theme.Dialog">

        <item name="android:windowFrame">@null</item><!--边框-->

        <item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->

        <item name="android:windowIsTranslucent">false</item><!--半透明-->

        <item name="android:windowNoTitle">true</item><!--无标题-->

       <!-- <item name="android:windowBackground">@color/alpha_bg</item>背景透明-->

        <item name="android:backgroundDimEnabled">false</item><!--模糊-->

    </style> 

////////////////////////////////////////////////////////////////////

文字跑马灯效果

<TextView android:layout_width="100px"

        android:layout_height="wrap_content"

        android:textColor="@android:color/white"

        android:ellipsize="marquee"

        android:focusable="true"

        android:marqueeRepeatLimit="marquee_forever"

        android:focusableInTouchMode="true"

        android:scrollHorizontally="true"

        android:text="这才是真正的文字跑马灯效果"

        >

    </TextView>