Android day04

Android day04

  • 第一步,手动创建drawable文件夹。
BitmapDrawable

使用bitmap做平铺效果。

<bitmap xmlns:android="http:......"
    android:src=“@drawable/ic_launcherandroid:titleMode:repeat”
        />
<!-- titleMode 显示的模式
        repeat : 平铺,使用较多
        clamp
        mirror-->
clipDrawable

剪切其他图片的位图,做出裁剪效果

<clip xmlns:android="http://...."
      android:drawable="@drawable/source"
      android:clipOrientation="vertical"
      android:gravaty="top"
      />
<!--    使用android:drawable来确定图片 
        clipOrientation 确定剪切的方向,两个属性vertical,horizontal
        gravity 确定裁剪的位置-->
<ImageView
           android:id="@+id/iv"
           ..../>
protected void onCreate(Bundle saveInstanceState){
    //部分代码省略...

    //获得控件
    ImageView iv = (ImageView)findViewById(R.id.iv);
    //获得控件对应的图片
    ClipDrawable  drawable = (ClipDrawable) iv.getDrawable();

    public void clickEvent(View v){
        //获得图片还没有剪裁的原始等级 10,000是图片的最高等级
        int level = drawable.getLevel();
        //得到图片的原始等级0
        if(level < 10000){
            drawable.setLevel(Level+500)
        }

    }
    //没有改变内存大小,但是减少了渲染压力。
}
StateListDrawable

button

<selector xmlns:android="http://...">
    <!--    1.添加图片 
            2.state_pressed: true 按下的状态,false, .... -->
        <item android:drawable="@drawable/p"
              android:state_pressed="true"</item>
        <item android:drawable="@drawable/p2"
              android:state_pressed="false"</item>
</selector>
<!-- Button中的backgroud指定到这个xml
按下去显示p,松开切换到p2 -->

checkbox

<selector xmlns:android="http://...">
    <!--    1.添加图片 
            2.state_checked: true 选中的状态,false, .... -->
        <item android:drawable="@drawable/p3"
              android:state_checked="true"</item>
        <item android:drawable="@drawable/p4"
              android:state_checked="false"</item>
        <!-- 如果不想写,可以去掉android:state_checked="false",但是必须放在后面才会有效果。否则必须写上 -->
</selector>
<!-- 如果不是简单的背景效果,需要将图片和文字分割开来的话,就不要使用background属性。
Transition

转换、动画效果

<transition xmlns:android="http://...">
    <item android:drawable="@drawable/p1"/>
    <item android:drawable="@drawable/p2"/>
    <item android:drawable="@drawable/p3"/>
</transition>
<!-- 在ImageView中引用 -->
ImageView iv = (ImageView) findViewById(R.id.iv);
TransitionDrawable drawable = (TransitionDrawable) iv.getDrawable();
drawable.startTransition(2000);//2000ms
LayerListDrawable
<layer-list xmlns:android="...">
    <item android:drawable="...1" android:id="...1"/>
    <item android:drawable="...2" android:id="...2"/>
</layer-list>
<!-- ProgressBar ProgressDrawable属性调用此xml -->


<layer-list xmlns:android="...">
    <item android:drawable="...1" adnroid:Top="??dp" android:Left.../>
    <item android:drawable="...2" adnroid:TOP="??dp" android:Left.../>
</layer-list>
<!-- ImageView中可以调用这个 -->
LevelListDrawable

管理一批交替的图片,通过 setLevel() 显示其中一个。

<level-list xmlns:android="...">
    <item 
        android:drawable="@drawable/p"
         android:maxLevel="0"/>
    <item 
        android:drawable="@drawable/p2"
         android:maxLevel="1"/>
    <item 
        android:drawable="@drawable/p3"
         android:maxLevel="2"/>
    <item 
        android:drawable="@drawable/p4"
         android:maxLevel="3"/>
  <!-- 排放注意顺序 -->
</level-list>
<!--    ImageView -> drawable  
        EditText -> android:inputType 
        Button -> onClick

        find by id 
        设置点击事件,得到输入框内容 content
        得到ImageView的drawable,强转成LevelListDrawable
        drawable.setLevel(Integer.parse(content))-->
InsetDrawable
<inset xmlns:android="..."
       android:drawable="@drawable/p"
       android:insetLeft="10dp"
       android:insetRight="10dp"
       android:insetTop="10dp"
       android:insetBottom,="10dp"/>
<!-- 可以被padding替代 -->
Shape
<shape xmlns:android="..." 
       android:shape="rectengle"><!-- oval ring ling -->
        <!--    innerRadius内环半径,innerRadiusRatio内环半径(比例)
                thickness圆环的厚度
                useLevel一般不使用-->
    <soild
        android:color="rgb"/>
    <stroke 
        android:width="?dp"
        android:color="rgb"/>
    <size 
          android:width
          android:heigth/>
    <gradient 
        android:startColor=""
        android:centerColor=""
        android:endColor=""
        android:type="radial"/>
    <!--    颜色填充的值,但他是一个渐变的值,不能和soild同时出现。
            radial放射效果-->
</shape>    

View里面什么属性都没有的话,默认是占整个屏幕

Selector,Item中嵌套shape

<selector ...>
    <item   android:state_pressed="true">
        <shape>...</shape>
    </item>
</selector>
NinePatch

ADT -> SDK -> tools

不规则图形制作拉伸工具。

使用方法略简单,不多做记录了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值