博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Design框架
阅读量:7083 次
发布时间:2019-06-28

本文共 7792 字,大约阅读时间需要 25 分钟。

  hot3.png

1.ToolBar

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        supportRequestWindowFeature(Window.FEATURE_NO_TITLE); //必须在setContentView之前        setContentView(R.layout.activity_tool_bar);        mTool = (Toolbar) findViewById(R.id.toolbar);        setSupportActionBar(mTool);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        MenuInflater menuInflater = getMenuInflater();        menuInflater.inflate(R.menu.tool_menu,menu);        MenuItem item1 = menu.findItem(R.id.lover1);        MenuItem item2 = menu.findItem(R.id.lover2);        MenuItem item3 = menu.findItem(R.id.lover3);        item1.setTitle("心情好");        SpannableString sbs = new SpannableString(item1.getTitle());        sbs.setSpan(new ForegroundColorSpan(Color.RED),0,1,0);        sbs.setSpan(new ForegroundColorSpan(Color.YELLOW),1,2,0);        sbs.setSpan(new ForegroundColorSpan(Color.BLUE),2,3,0);        item1.setTitle(sbs);//        item2.setTitle("天气好");        String stsHtml = "好";        item2.setTitle(Html.fromHtml(stsHtml));        item3.setTitle("吃饭香");        return super.onCreateOptionsMenu(menu);    }

2.Percent 百分比布局

e8fd8ff5959e2c19c47193cb66c7bd626c8.jpg

3.FloatingActionButton 浮动按钮

4.Snackbar

public void clickButton(View view) {    Snackbar snackbar = Snackbar.make(view,"你说什么?",Snackbar.LENGTH_SHORT);    snackbar.setAction("广告", new View.OnClickListener() {        @Override        public void onClick(View v) {            Toast.makeText(FloatActionActivity.this, "广告打得好,不如新飞冰箱好", Toast.LENGTH_SHORT).show();        }    });    snackbar.setActionTextColor(Color.YELLOW);    View mView = snackbar.getView();    mView.setBackgroundColor(Color.BLUE);    TextView mText = (TextView) mView.findViewById(android.support.design.R.id.snackbar_text);    mText.setText("杀白猪爆金条");    mText.setTextColor(Color.RED);    snackbar.show();}

5.TextInputEditText 文本输入布局

d433a665e3765fe189a3dc38089abd63554.jpg

public void login(View view) {        String user = mUserEdit.getText().toString();        if(user!=null&&user.isEmpty()){            //设置错误提示            mUserLayout.setError("用户名不能为空");            return;        }else{            //隐藏错误提示            mUserLayout.setErrorEnabled(false);        }        ...    }

6.TabLayout 选项卡

private void initTab() {        mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);        mTabLayout.addTab(mTabLayout.newTab().setCustomView(createCustomView()).setText("娃哈哈").setIcon(R.drawable.ic_home));        mTabLayout.addTab(mTabLayout.newTab().setCustomView(createCustomView()).setText("娃哈哈").setIcon(R.drawable.ic_home));        mTabLayout.setTabTextColors(Color.WHITE,Color.RED);        mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {            /**             * 当TAB选中的时候             * @param tab             */            @Override            public void onTabSelected(TabLayout.Tab tab) {                TextView view = (TextView) tab.getCustomView().findViewById(android.R.id.text1);                view.setTextColor(Color.RED);            }            /**             * 当TAB解除选中             * @param tab             */            @Override            public void onTabUnselected(TabLayout.Tab tab) {                TextView view = (TextView) tab.getCustomView().findViewById(android.R.id.text1);                view.setTextColor(Color.WHITE);            }            /**             * 再次被选中             * @param tab             */            @Override            public void onTabReselected(TabLayout.Tab tab) {                TextView view = (TextView) tab.getCustomView().findViewById(android.R.id.text1);                view.setTextColor(Color.YELLOW);            }        });//        mTabLayout.setSelectedTabIndicatorColor();        指示器颜色        mTabLayout.setSelectedTabIndicatorHeight(2);       //指示器高度//        mTabLayout.setupWithViewPager();                  //关联ViewPager    }    private View createCustomView(){        View view = LayoutInflater.from(this).inflate(R.layout.tab_item, null);        return view;    }

7.NavigationView 导航

navigation_menu.xml

2bdcb95534cd8a23ad0a1cd8c6127752c00.jpg

594af10c8bb0c70dac155839da1e188dba7.jpg

8.

android.support.design.widget.AppBarLayout$ScrollingViewBehavior

1b7cf75938cc201c461842e2b0bfe997fb6.jpg

9.CollapsingToolBarLayout 折叠布局

...

c9665930390cc0590c67d2a89e767f0b8fc.jpgbc97fe179ccdc10798b8b93915493bd8483.jpg

10.CoordinatorLayout.Behavior之move

128e8d63e143f28edce088d60c0d270f9b8.jpg

public class MoveBehavior extends CoordinatorLayout.Behavior
{ public MoveBehavior(Context context, AttributeSet attr){ super(context,attr); } @Override public boolean layoutDependsOn(CoordinatorLayout parent, TextView child, View dependency) { return dependency instanceof TextView; } /** * 当我们关系的视图发生改变的时候 * @param parent 父布局 * @param child 设置behavior的布局 * @param dependency 关心的布局 * @return */ @Override public boolean onDependentViewChanged(CoordinatorLayout parent, TextView child, View dependency) { int top = dependency.getTop() - child.getTop(); ViewCompat.offsetTopAndBottom(child,top);//设置该Behavior的TextView随dependency的移动而移动 return true; }}

11.CoordinatorLayout.Behavior之Scroll

...
...
public class ScrollBehavior extends CoordinatorLayout.Behavior
{ public ScrollBehavior(Context context, AttributeSet attr){ super(context,attr); } /** * 启动滚动 * @param coordinatorLayout 父布局 * @param child 关联的Behavior的视图 * @param directTargetChild 目标子视图 * @param target 关心的视图 * @param nestedScrollAxes 滚动的方向 * @return */ @Override public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, View child, View directTargetChild, View target, int nestedScrollAxes) { //按位与 非0 为真 SCROLL_AXIS_HORIZONTAL return (nestedScrollAxes& ViewCompat.SCROLL_AXIS_VERTICAL)!=0; } /** * 视图滚动的时候 * @param coordinatorLayout 父布局 * @param child behavior的视图 * @param target 关心的视图 * @param dx 横向移动的像素 * @param dy 竖向移动的像素 * @param consumed */ @Override public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, View child, View target, int dx, int dy, int[] consumed) { super.onNestedPreScroll(coordinatorLayout, child, target, dx, dy, consumed); int scrollY = target.getScrollY();// child.setScaleY(); child.setScrollY(scrollY); } /** * 快速滑动 * @param coordinatorLayout 父布局 * @param child 设置Behavior的视图 * @param target 所关心的那个 * @param velocityX 速度X * @param velocityY 速度Y * @param consumed * @return */ @Override public boolean onNestedFling(CoordinatorLayout coordinatorLayout, View child, View target, float velocityX, float velocityY, boolean consumed) { if(child instanceof NestedScrollView){ ((NestedScrollView)child).fling((int) velocityY); } return true; }}

12.

0bb9f6c941db26eca8954b12c46e9d59dc6.jpg07fa2b683ea48f90f6c5bf818d92925a234.jpg

f19a0e000cf332cd171733a4b8b5287f733.jpg222ad897a5361ac8307f89ec08c548c7660.jpg

334ff1dbd8a63baecb527440a0e991bbed4.jpg35d33a36c83baefbddd1bdf6315bed8b158.jpg

e83da1fd72e9d9a1491c92b167c55077528.jpg66cb1fafe90bd6c5e1592b48aadf7424d6f.jpg

13.StyleColor

d2c9e3adc219aeda971e122bec56c3edf52.jpg

转载于:https://my.oschina.net/glfei/blog/2960791

你可能感兴趣的文章
轻松识别Windows 2008服务器角色与功能
查看>>
Mysql及数据库的基础概念
查看>>
Gearman 基础 以及 Gearman 使用举例
查看>>
什么是BGP?使用BGP方案有什么优点
查看>>
Windows唤出桌面图标设置
查看>>
宿主机与虚拟机的相互通信
查看>>
C4D操作 延迟 ,卡顿罕见状况解决方案。
查看>>
文档linux1.2
查看>>
CentOS下如何完全卸载MySQL?解决卸载不干净的问题
查看>>
SHOW PROCESSLIST
查看>>
教你如何开启/关闭ubuntu防火墙
查看>>
一线 IT 公司开发转管理,我是怎么从 0 到 1 的?
查看>>
linux快捷键
查看>>
小编教您Springboot项目中异常拦截设计与处理
查看>>
mysql Oracle 的区别 你不能不知道的事
查看>>
Nginx配置文件-3
查看>>
Linux 运维基础
查看>>
CAPP集成化工艺设计与管理系统
查看>>
java.util.concurrent.atomic.AtomicReference 源码
查看>>
Windows优化大师下载| Windows优化大师下载
查看>>