Android shape设置渐变色

本文详细介绍了如何在Android中使用自定义Shape实现矩形、圆角、渐变色等效果。通过XML配置文件,可以轻松调整形状、颜色渐变、描边及填充等属性。
本文转载自:Android shape自定义形状,设置渐变色 - Michelle's Home - 博客园

<?xml version="1.0" encoding="utf-8"?>
<!-- 
     android:shape=["rectangle" | "oval" | "line" | "ring"]
     shape的形状,默认为矩形,可以设置为矩形(rectangle)、椭圆形(oval)、线性形状(line)、环形(ring)

  下面的属性只有在android:shape="ring时可用:
  // 尺寸,内环的半径。
  android:innerRadius

  //浮点型,以环的宽度比率来表示内环的半径,这个值是可以被覆盖的,默认为9.
  android:innerRadiusRatio    

  //尺寸,环的厚度
  android:thickness     

  //浮点型,以环的宽度比率来表示环的厚度,如果android:thicknessRatio="2",那么环的厚度就等于环的 
  //宽度除以2。这个值是可以被android:thickness覆盖的,默认值是3.
  android:thicknessRatio     
  
  //boolean值,如果当做是LevelListDrawable使用时值为true,否则为false.
  android:useLevel     
  -->
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    
 <corners
        android:radius="9dp"
        android:topLeftRadius="2dp"
        android:topRightRadius="2dp"
        android:bottomLeftRadius="2dp"
        android:bottomRightRadius="2dp"/><!-- 设置圆角半径 -->    
<!--
         圆角
      android:radius       整型 半径
      android:topLeftRadius       整型 左上角半径
      android:topRightRadius      整型 右上角半径
      android:bottomLeftRadius 整型 左下角半径
      android:bottomRightRadius 整型 右下角半径
      当同时设置5个属性时,android:radius无效
     -->
   
    
    <!--
        渐变色
        android:startColor  颜色值 起始颜色
        android:endColor    颜色值 结束颜色
        android:centerColor 整型   渐变中间颜色,即开始颜色与结束颜色之间的颜色
        android:angle       整型   渐变角度(PS:当angle=0时,渐变色是从左向右。 然后逆时针方向转,当angle=90时为从下往上。angle必须为45的整数倍)
        android:type        ["linear" | "radial" | "sweep"] 渐变类型(取值:linear、radial、sweep)
                            linear 线性渐变,这是默认设置
                            radial 放射性渐变,以开始色为中心。
                            sweep 扫描线式的渐变。
       android:useLevel   ["true" | "false"] 如果要使用LevelListDrawable对象,就要设置为true。设置为true无渐变。false有渐变色
       android:gradientRadius 整型 渐变色半径.当 android:type="radial" 时才使用。单独使用 android:type="radial"会报错。
       android:centerX        整型   渐变中心X点坐标的相对位置
       android:centerY   整型   渐变中心Y点坐标的相对位置
android:startColor,android:centerColor,android:endColor:分别为颜色的起始颜色,中间颜色和结束颜色。如果没有设置中间颜色,那么就从起始颜色渐变到结束颜色,否则回从起始颜色渐变到中间颜色,再从中间颜色渐变到结束颜色。
 
 
android:centerX,android:centerY:我觉得这两个属性有存在的必要性的前提是要有
 
android:centerColor。原因是当我没有设置android:centerColor属性时,任意的改变这两个属性的值都不会改变控件的显示效果。这两个属性是渐变的中间位置。大小都是再0.0--1.0。
    -->
    <gradient
        android:startColor="@android:color/white"
        android:centerColor="@android:color/black"
        android:endColor="@android:color/black"
        android:useLevel="true"
        android:angle="45"
        android:type="radial"
        android:centerX="0"
        android:centerY="0"
        android:gradientRadius="90"/>
    
    
<!--
          内边距,即内容与边的距离 
          android:left      整型 左内边距
          android:top   整型 上内边距
          android:right      整型 右内边距
          android:bottom 整型 下内边距
      -->
    <padding
        android:left="2dp"
        android:top="2dp"
        android:right="2dp"
        android:bottom="2dp"/><!-- 各方向的间隔 -->
    
   
 <!-- 
       size 大小
       android:width 整型 宽度
       android:height 整型 高度
    -->
    <size
        android:width="50dp"
        android:height="50dp"/><!-- 宽度和高度 -->
    
   
 <!--
        内部填充
        android:color 颜色值 填充颜色
    -->
    <solid
        android:color="@android:color/white"/><!-- 填充的颜色 -->
    
  <!--
         描边
         android:width 整型 描边的宽度
         android:color 颜色值 描边的颜色
         android:dashWidth 整型 表示描边的样式是虚线的宽度, 值为0时,表示为实线。值大于0则为虚线。
         android:dashGap      整型 表示描边为虚线时,虚线之间的间隔 即“ - - - - ”
android:dashWidth:线条的长度。当设置了该值时,将会显示位虚线。除非你dashWidth设置的值很大,那么看起来还是一条完整的线条。
 
 
android:dashGap:线条之间的距离。只在设置了dashWidth属性的情况下才会有效果。可以认为是虚线之间的宽度。
     -->
   
    <stroke
        android:width="2dp"
        android:color="@android:color/black"
        android:dashWidth="1dp"
        android:dashGap="2dp"/>
    
</shape>
<think>嗯,用户问如何回退Git远程提交记录。我需要仔细思考这个问题,确保给出正确的步骤和注意事项。首先,用户可能已经将一些提交推送到远程仓库,但后来发现有问题,想要撤销这些提交。这时候,回退远程提交就需要用到Git的一些命令,比如git reset或者git revert,但要注意不同的方法有不同的影响。 首先,我应该考虑本地回退和强制推送到远程的情况。通常的做法是在本地回退到某个提交,然后使用git push --force来覆盖远程分支。但这样做有风险,尤其是当其他人也在同一个分支上工作时,可能会导致他们的提交丢失。需要提醒用户注意这一点。 接着,可能需要具体步骤。例如,用户需要先使用git log找到要回退到的提交的哈希值,然后用git reset --hard <commit-hash>来回退本地分支。之后,强制推送到远程仓库。但必须强调,只有在确定没有其他人依赖该分支的情况下才能这么做。 另外,git revert也是一个安全的选择,因为它会创建新的提交撤销之前的更改,而不会重写历史。这对于团队合作的项目更安全,因为不会影响其他人的工作流程。但用户的问题明确是回退远程提交,可能他们希望彻底删除某些提交,而不仅仅是撤销更改。 还有,可能需要提到其他相关命令,比如git push --force-with-lease,它比--force更安全,因为它会检查远程分支的当前状态是否与本地预期一致,避免覆盖其他人的提交。 还需要考虑分支保护的情况,比如在GitHub或GitLab上,默认分支可能被保护,不允许强制推送。这时候用户可能需要暂时解除保护,或者在临时分支上操作,然后通过合并请求来回退。 此外,提醒用户在操作前备份当前状态,比如创建一个临时分支,以防万一操作出错可以恢复。同时,强调在执行强制推送后,其他协作者需要同步他们的本地仓库,避免出现不一致的情况。 总结一下,回答的结构应该是先说明风险,再给出不同的方法(reset + force push,revert),比较它们的适用场景,然后分步骤说明操作流程,最后给出注意事项和建议。需要确保用户理解每种方法的后果,并根据实际情况选择合适的方式。</think>要回退Git远程提交记录,需谨慎操作以避免影响团队协作。以下是具体操作步骤及注意事项: --- ### 一、操作原理 Git远程提交记录本质是修改分支指针位置,通过本地回退后强制推送(force push)覆盖远程分支。⚠️ 此操作会重写历史记录,可能影响其他协作者。 --- ### 二、具体步骤 #### 方法1:使用 `git reset`(彻底删除提交) 1. **定位目标提交** ```bash git log --oneline # 找到要回退到的提交哈希值(如 abc123) ``` 2. **本地回退** ```bash git reset --hard abc123 # 将本地分支回退到目标提交 ``` 3. **强制推送到远程** ```bash git push --force origin 分支名 # 覆盖远程分支 # 更安全的替代命令: git push --force-with-lease origin 分支名 # 检查远程状态是否与本地预期一致 ``` #### 方法2:使用 `git revert`(安全撤销,保留历史) 1. **撤销指定提交** ```bash git revert 要撤销提交哈希值 # 生成一个反向提交 ``` 2. **推送新提交** ```bash git push origin 分支名 # 无需强制推送 ``` --- ### 三、关键对比 | 方法 | 适用场景 | 优点 | 缺点 | |------------|------------------------------|---------------------|-----------------------| | `git reset`| 个人分支/需要彻底
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值