android:gravity=“center”
android:background=“@mipmap/drawer_bg”>
<ImageView
android:id=“@+id/demo_lv_up1”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:src=“@mipmap/drawer_arrow_up”/>
<ImageView
android:id=“@+id/demo_lv_up2”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:src=“@mipmap/drawer_arrow_up”/>
<RelativeLayout
android:background=“#ffffff”
android:id=“@+id/demo_ll_content”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:orientation=“vertical”>
<TextView
android:layout_centerInParent=“true”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:textSize=“26sp”
android:text=“抽屉的内容”/>
<Button
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:text=“我是打酱油的”
android:background=“#ff00ff”
/>
Activity中的实现效果的代码:(透明动画)
Activity代码如下:
public class MyDemo extends AppCompatActivity {
private ImageView demo_lv_up1;
private ImageView demo_lv_up2;
private LinearLayout demo_ll_handle;
private RelativeLayout demo_ll_content;
private SlidingDrawer demo_sd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_demo);
initView();
//动画的实现
initAnimation();
//抽屉的点击事件
setOnDrawerListener();
}
private void initView() {
demo_lv_up1 = (ImageView) findViewById(R.id.demo_lv_up1);
demo_lv_up2 = (ImageView) findViewById(R.id.demo_lv_up2);
demo_ll_handle = (LinearLayout) findViewById(R.id.demo_ll_handle);
demo_ll_content = (RelativeLayout) findViewById(R.id.demo_ll_content);
demo_sd = (SlidingDrawer) findViewById(R.id.demo_sd);
}
//动画的实现
private void initAnimation() {
demo_lv_up1.setImageResource(R.mipmap.drawer_arrow_up);
demo_lv_up2.setImageResource(R.mipmap.drawer_arrow_up);
//半透明-不透明
AlphaAnimation animation = new AlphaAnimation(0.2f, 1.0f);
animation.setDuration(500);
animation.setRepeatCount(Animation.INFINITE);
animation.setRepeatMode(Animation.REVERSE);
demo_lv_up1.startAnimation(animation);
//不透明-半透明
AlphaAnimation animation1 = new AlphaAnimation(1.0f, 0.2f);
animation1.setDuration(500);
animation1.setRepeatCount(Animation.INFINITE);
animation1.setRepeatMode(Animation.REVERSE);
demo_lv_up2.startAnimation(animation1);
}
//抽屉的点击事件
private void setOnDrawerListener() {
//打开抽屉
demo_sd.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener() {
@Override
public void onDrawerOpened() {
//关闭动画,改变箭头方向
closeAnimation();
}
});
demo_sd.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() {
@Override
public void onDrawerClosed() {
//改变箭头方向,开启动画
initAnimation();
}
});
}
如何成为Android高级架构师!
架构师必须具备抽象思维和分析的能力,这是你进行系统分析和系统分解的基本素质。只有具备这样的能力,架构师才能看清系统的整体,掌控全局,这也是架构师大局观的形成基础。 你如何具备这种能力呢?一是来自于经验,二是来自于学习。
架构师不仅要具备在问题领域上的经验,也需要具备在软件工程领域内的经验。也就是说,架构师必须能够准确得理解需求,然后用软件工程的思想,把需求转化和分解成可用计算机语言实现的程度。经验的积累是需要一个时间过程的,这个过程谁也帮不了你,是需要你去经历的。
但是,如果你有意识地去培养,不断吸取前人的经验的话,还是可以缩短这个周期的。这也是我整理架构师进阶此系列的始动力之一。
成为Android架构师必备知识技能
对应导图的学习笔记(由阿里P8大牛手写,我负责整理成PDF笔记)
部分内容展示
《设计思想解读开源框架》
- 目录
- 热修复设计
- 插件化框架设计
《360°全方面性能优化》
- 设计思想与代码质量优化
- 程序性能优化
23546451186)]
- 插件化框架设计
[外链图片转存中…(img-ooM08wFS-1723546451186)]
《360°全方面性能优化》
[外链图片转存中…(img-AflvOFA3-1723546451187)] - 设计思想与代码质量优化
[外链图片转存中…(img-OKWiN8HL-1723546451187)] - 程序性能优化
[外链图片转存中…(img-DNPe7PxC-1723546451187)]