Android中Button和动画
2019-09-21 本文已影响0人
黑铁选手
目的
掌握按钮的相关属性及其操作,熟悉xml配制动画和代码创建和图片的
相关技术、及其使用
1、Button的属性和大多数的属性有相同之处,例如:text、textColor、textSize和marginTop等属性都是相同的,但是还是有不同的属性,比如说:enabled属性(文本是否能操作)
<Button
android:id="@+id/bt_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="登录"
android:textColor="#ff0000"
android:textSize="25sp"
android:tag="1"
android:layout_marginTop="10dp"
/>
2、给按钮添加点击事件
(1)可以在xml配制文件里面使用android:onClick="login",个人意见,不建议使用,多数情况下回出错。
(2)在代码里面调用setOnClickListener(实现onClick方法)给按钮添加点击事件,如果需要实现点击按钮过后,按钮上显示的文本改变,推荐使用Lambda函数来实现。
btn.setOnClickListener((view ->{
//推荐使用
if (btn.getTag().equals("1")) {
btn.setText("done");
btn.setTag("0");
} else {
btn.setText("edit");
btn.setTag("1");
}
}));
3、动画(animation)里面主要学习关键帧动画(FrameAnimation),关键帧动画就是使用多帧(多张图片)快速切换形成一种动画,动画里面有个重要的属性就是Duration(动画每一帧之间的间隔时间)
注意:补间动画只是一个效果,没有真正的改变属性的值,属性动画才是真正的改变了控件的属性值
关键帧动画:配制了动画的每一帧(每一张)
补间动画:只关心开始和结束的两个状态,中间的动画有系统自动补全
(1)xml配制文件中创建动画,直接添加View设置颜色大小,并添加id方便创建代码过程中调用res -> anim -> xxx.xml
<View
android:id="@+id/v_anim"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@color/colorAccent"/>
(2)代码创建动画效果步骤:
(2.1)找到需要动画的控件
(2.2)创建动画
(2.3)开启动画
//1、创建一个动画资源
AnimationDrawable anim = new AnimationDrawable();
//2、添加每一帧的动画
int[] resID = {R.drawable.campfire01,R.drawable.campfire02,R.drawable.campfire03,R.drawable.campfire04,R.drawable.campfire05,R.drawable.campfire06,R.drawable.campfire07,R.drawable.campfire08,R.drawable.campfire09,R.drawable.campfire10,R.drawable.campfire11,R.drawable.campfire12,R.drawable.campfire13,R.drawable.campfire14,R.drawable.campfire15,R.drawable.campfire16,R.drawable.campfire17};
for(int id:resID){
anim.addFrame(getResources().getDrawable(id,null),100);
}
//3、使用这个动画资源
ImageView iv = findViewById(R.id.iv_animation);
iv.setImageDrawable(anim);
//4、启动动画
anim.start();
4、补间动画相关功能xml配制文件中配制
平移:translate
缩放:scale
旋转:rotate
透明:alpha
<translate android:fromXDelta="0%" android:toXDelta="100%"/>
<alpha android:fromAlpha="0" android:toAlpha="1.0"/>
<scale android:fromXScale="0.1" android:toXScale="1.0" android:fromYScale="0.1" android:toYScale="1.0" android:pivotX="50%" android:pivotY="50%"/>
<rotate android:fromDegrees="0" android:toDegrees="360" android:pivotY="50%" android:pivotX="50%"/>
PS
已经是开始Android阶段学习的第五天,一直给我的感觉就是东西很多,方法很多,记不住,其实知识点都很简单,并不复杂,但是就是很多。