Android shap的使用

shape 是形状的意思,使用它可以设置自己的shape

[java]  view plain copy
  1. <selector xmlns:android="http://schemas.android.com/apk/res/android" >  
  2.     <item android:state_focused="true">  
  3.         <shape>  
  4.             <corners />  
  5.             <gradient />  
  6.             <padding />  
  7.             <size />  
  8.             <solid />  
  9.             <stroke />  
  10.               
  11.         </shape>  
  12.     </item>  
  13.   
  14. </selector>  
它的所有属性都在上面了
 从简单的开始看起:

       1.solid就是控件填充的颜色,该标签只有一个属性

         <solid 
                android:color="#ffff0000"/> 

      这个使用红色填充使用它的控件

     2.padding 这个内填充,跟Xml的padding是一个意思,说明:略

     该属性只有4个值

         

[java]  view plain copy
  1. <padding   
  2.                android:left="10dp"  
  3.                android:top="10dp"  
  4.                android:right="10dp"  
  5.                android:bottom="10dp"  
  6.                />  
   3. size   知道控件的宽度跟高度,控件的width  height设置为wrap_content才有效,说明:略

    只有2个值,不建议设置

[java]  view plain copy
  1. <size  
  2.                   
  3.                 android:width="50dp"   
  4.                 android:height="100dp"/><pre name="code" class="java">  

 
4. 
corners  这个是角度,只有5个属性  
[java]  view plain copy
  1. <corners  
  2.                android:radius="30dp"  
  3.                android:bottomLeftRadius="10dp"  
  4.                android:topRightRadius="10dp"  
  5.                android:bottomRightRadius="10dp"  
  6.                android:topLeftRadius="50dp"  
  7.                 />  
是各个顶点角度的值,单位是dp,值越大角度就越大,这个很容易理解,如果不理解,动手试验一下就明白了

5.stroke  是描边的意思   只有4个属性

       <stroke                android:width="3dp"                android:color="#aaff0000"                android:dashWidth="10dp"                android:dashGap="20dp"                 />

默认的是实线的描边

width  是描边的宽度

cllor时候 描边的颜色 

如果要使用虚线(-----) 那么就加入另外2个属性

dashWidth 是每个点(-)的长度

dashgap 每个点(-)之间的宽度

使用虚线时才需要设置这个值

6.gradient 最后一个最复杂的渐变效果

[java]  view plain copy
  1. 所有属性如下:  
[java]  view plain copy
  1. <pre name="code" class="java"> <gradient  
  2.                 android:startColor=""  
  3.                 android:centerColor=""  
  4.                 android:endColor=""  
  5.                 android:useLevel=""  
  6.                 android:angle=""  
  7.                 android:type=""  
  8.                 android:centerX=""  
  9.                 android:centerY=""  
  10.                 android:gradientRadius=""  
  11.                  />  
是使控件的颜色有一个渐变的过程的一个属性,使用这个的话,那么solid就不可以使用的,否则没有效果
 
[java]  view plain copy
  1. so要注释掉solid属性  
[java]  view plain copy
  1. <pre name="code" class="java">startColor   跟 endColor  就是从哪一个颜色渐变到另一种颜色  
[java]  view plain copy
  1. <pre name="code" class="java">centerColor  是渐变的中间值,个人理解是前一半跟后一半要变化的变化量的控制  
useLevel 本人试验了,默认是false ,设置为true的话,没有找到其规律,
 
[java]  view plain copy
  1. angle  是角度,必须要是45的倍数,否则运行时报错。角度指明从空间的哪一个角度开始渐变     
[java]  view plain copy
  1. 度数是 渐变的角度, 比如说 0 就是从左到右的渐变,45 就是从左下角到右上角渐变,90 ,就是从下到上的渐变  
[java]  view plain copy
  1. 如图  手绘的图,用软件话浪费时间  

 

type 是类  默认是  linear (线性渐变)

type :radial    要指定半径也就是

android:gradientRadius="20"

type : sweep   这个值没有看懂啥意思

android:centerX=""
 android:centerY=""

指定Xy轴的中心点


使用:

<Button 
        android:layout_width="wrap_content"
        android:layout_height="50dp"
   android:layout_centerHorizontal="true"
   android:layout_below="@id/shape"
   android:layout_marginTop="20dp"
   android:background="@drawable/my_select"
        android:text="Shape2"/>

xml为

[java]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.       
  5.     <item android:state_focused="false">  
  6.         <shape>  
  7.             <corners  
  8.                 android:radius="30dp"  
  9.                  />  
  10.             <gradient   
  11.                 android:startColor="#ff000000"  
  12.                 android:endColor="#ffffffff"  
  13.                 android:angle="45"  
  14.                 android:type="linear"  
  15.                   
  16.                 />  
  17.             <!-- 默认是linear   
  18.             使用radial时要指定半径  那么从中心点开始变化 -->  
  19.             <padding   
  20.                 android:left="10dp"  
  21.                 android:top="10dp"  
  22.                 android:right="10dp"  
  23.                 android:bottom="10dp"  
  24.                 />  
  25.             <!--   width  跟 height 的值被控件的值大/少时不生效  
  26.             除非使用wrap_content  
  27.              -->  
  28.             <size  
  29.                   
  30.                 android:width="50dp"   
  31.                 android:height="100dp"/>  
  32.             <!--  <solid   
  33.                 android:color="#55ffff00"/>  -->  
  34.             <stroke  
  35.                 android:width="3dp"  
  36.                 android:color="#aaff0000"  
  37.                 android:dashWidth="10dp"  
  38.                 android:dashGap="20dp"  
  39.                  />  
  40.               
  41.         </shape>  
  42.     </item>  
  43.   
  44. </selector>  
运行结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SHAP(SHapley Additive exPlanations)是一种可解释性机器学习技术,它可以帮助我们理解模型预测结果的内部机制。在logistic回归中使用SHAP可以帮助我们确定哪些特征对于模型预测的影响最大。 具体来说,我们可以使用Python中的shap库来计算每个特征在模型预测中的贡献。首先,我们需要训练一个logistic回归模型。然后,我们可以使用shap库中的"KernelExplainer"类来计算每个特征的SHAP值。具体步骤如下: 1. 安装shap库:在Python中使用"pip install shap"命令来安装shap库。 2. 训练logistic回归模型:使用Python中的scikit-learn库训练一个logistic回归模型。 3. 计算SHAP值:使用shap库中的"KernelExplainer"类来计算每个特征的SHAP值。示例代码如下: ```python import shap # 训练模型 model = ... # 使用scikit-learn库训练的logistic回归模型 # 创建一个"KernelExplainer"对象 explainer = shap.KernelExplainer(model.predict_proba, X_train) # 计算每个特征的SHAP值 shap_values = explainer.shap_values(X_test) ``` 在上述代码中,"model.predict_proba"是用于预测概率的模型函数,"X_train"和"X_test"是训练集和测试集数据。"shap_values"是一个包含每个样本的SHAP值的数组。我们可以使用"shap.summary_plot"函数来可视化每个特征的SHAP值,以及它们对于模型预测的重要性。 ```python shap.summary_plot(shap_values, X_test) ``` 上述代码将生成一个可视化图表,显示每个特征的SHAP值以及它们对于模型预测的重要性。 使用SHAP可以帮助我们理解模型的预测结果,并找出影响预测最大的特征,从而改善模型的性能和可解释性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值