Android 什么是 Material Design

ANDROID L——Material Design详解(动画篇) Android L Material Design详解最后一篇——动画篇。使用动态GIF图演示Touch feedback(触摸反馈),Reveal effect(揭露效果)Activity transitions(Activity转换效果)动画效果以及介绍如何使用。 阅读详情

        在公司实战开发长久以来,因为在 IT 公司在应用界面设计的时候为了保持统一,我们的产品经常会强制要求 Android 的界面风格要和 iOS 一致,因为人家长得好看,这种要求在工作中被认为是普遍存在的,,这也确实怪不了别人,问题在于 Android 标准的设计风格并不是被用户所接受,大家基本都认为 Android 系统的 UI 太难看,再加上很多公司都在自己设计自认为更加好看的界面,这样就造成了 Android 的界面设计百花齐放,各有风格,长期难以得到统一,终于在 2014 年 Google  I/O 大会上 Material Design 应运而生

那么到底什么是 Material Design,我们先来看一张图:


这张图来自 Android 的官方网站,是不是很漂亮,官方是这么介绍这张图的:创造一种视觉语言,将经典设计原则与科技和科学的创新的可能性相结合,我想这就是 Material Design 的使命吧

Material Design 是由谷歌设计师基于传统的优秀的设计原则,结合创意和科学技术多发明的一套全新的视觉语言,包含了视觉、运动、互动效果等特性如果各个公司都无法设计出比 Material Design 更出色的界面风格,那么它们就应该使用 Material Design 来设计界面,这样也就能从一定程度上解决 Android 平台界面风格界面不统一的问题了,不过在 2014 年重磅推出之后,并没有达到很好的普及效果,,因为这只是一个推荐的设计规范,主要是面向 UI 设计人员的,而不是面向开发的,我们开发者可能根本就搞不懂,什么样的界面效果才能叫 Material Design ,就算知道了,具体到实现也是非常费劲,因为很多 Material Design 的风格是很难实现的,并且 Android 几乎没有提供相应的 API 支持,一切都要开发者从开始,Google 很快也意识到了这个问题,于是在 2015 年的 I/O 大会上推出了 Design Support 库,这个库对 Material Design 中代表性的实现效果进行了封装,这样就使得开发者在不是特别了解 Material Design 的情况下也可以将自己的应用程序 Material Design 化

下面我们就从几个方面来具体看一下:


一、使用材料主题


如果要在应用中使用材料主题,请指定一个从 android:Theme.Material继承风格:

<!-- res/values/styles.xml -->
<resources>
  <!-- your theme inherits from the material theme -->
  <style name="AppTheme" parent="android:Theme.Material">
    <!-- theme customizations -->
  </style>
</resources>

材料主题提供更新的系统小组件,让你能够为触摸反馈以及操作行为转换设置配色工具以及默认动画

新材料主题将提供:

  • 让你设置主题配色工具的系统小组件
  • 适用于小组件的触摸反馈动画
  • 操作行为转换动画
你可以使用自己所控制的配色工具,按照品牌形象定制材料主题外观,可以使用主题属性为操作栏和状态栏着色,如下图:




系统小组件拥有全新的设计与触摸反馈动画,可以为自己的应用定制调色工具、触摸反馈动画以及操作行为转换

材料主题定义为:

  • @android:style/Theme.Material (深色版本)
  • @android:style/Theme.Material.Light (浅色版本)
  • @android:style/Theme.Material.Light.DarkActionBar

注意:材料主题仅在 Android 5.0 ( API 级别 21 )及更高版本中提供,v7 支持内容库为一些小组件提供附带 Material Design 风格的主题,同时为配色工具定制提供支持


定制配色工具:

如果要定制主题的基色以符合你 App 的风格,你可以进行材料主题继承时使用主题属性定义你的定制颜色:

<resources>
  <!-- inherit from the material theme -->
  <style name="AppTheme" parent="android:Theme.Material">
    <!-- Main theme colors -->
    <!--   your app branding color for the app bar -->
    <item name="android:colorPrimary">@color/primary</item>
    <!--   darker variant for the status bar and contextual app bars -->
    <item name="android:colorPrimaryDark">@color/primary_dark</item>
    <!--   theme UI controls like checkboxes and text fields -->
    <item name="android:colorAccent">@color/accent</item>
  </style>
</resources>

定制状态栏:




       材料主题可以让你轻松定制状态栏,因此你可以指定一个符合自己 App 风格特色的状态栏,如果要为状态栏设置定制颜色,你可以在扩展材料主题时使用android:statusBarColor 属性。默认情况下,android:statusBarColor 将继承 android:colorPrimaryDark的值

       你也可以自行将状态栏移到后侧,例如,你想在一个照片上以透明的方式显示状态栏,同时利用细微的深色渐变以确保白色状态栏图标仍保持可见,如果要执行此操作,需要将android:statusBarColor 属性设置为@android:color/transparent 并根据需要调整窗口标志,也可以使用 Window.setStatusBarColor()方法进行动画或淡出设置

注意:在多数情况下,状态栏与主工具栏之间应该有一个清楚的分割,可以在这些栏的后侧显示全屏的丰富图像或媒体内容以及使用颜色渐变以确保图表仍保持可见的情况除外

定制状态栏是,可以选择将导航栏和状态栏变透明或修改状态栏,在所有其他情况中,状态栏均应保持黑色


二、创建列表与卡片


在应用中使用 Material Design 风格创建复杂列表与卡片,可以使用 RecyclerView 以及 CardView 小部件


创建列表


RecyclerView 小部件比 ListView 更高级且更加的灵活,RecyclerView 是用于显示庞大数据集的容器,说白了就是用来展示列表的


  • RecyclerView 提供这些内置布局管理器:
  • LinearLayoutManager 以垂直或水平滚动列表方式显示
  • GridLayoutManager 显示网格状显示布局
  • StaggeredGridLayoutManager 在分散对齐网格中显示项目

如果要创建一个自定义布局管理器,请扩展 RecyclerView.LayoutManager 类别


动画

                                                    

RecyclerView 在默认情况下启用增加删除列表的动画,如果需要自定义这些动画,请扩展RecyclerView.ItemAnimator 类别并使用 RecyclerView.setItemAnimator()方法

示例:

下列代码示例将展示如何将 RecyclerView 添加至布局:

<!-- A RecyclerView with some commonly used attributes -->
<android.support.v7.widget.RecyclerView
    android:id="@+id/my_recycler_view"
    android:scrollbars="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

将 RecyclerView 小部件添加至布局后,立即获取对象并将连接至布局管理器,同时添加一个适配器以便显示数据:

public class MyActivity extends Activity {
    private RecyclerView mRecyclerView;
    private RecyclerView.Adapter mAdapter;
    private RecyclerView.LayoutManager mLayoutManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_activity);
        mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);

        // use this setting to improve performance if you know that changes
        // in content do not change the layout size of the RecyclerView
        mRecyclerView.setHasFixedSize(true);

        // use a linear layout manager
        mLayoutManager = new LinearLayoutManager(this);
        mRecyclerView.setLayoutManager(mLayoutManager);

        // specify an adapter (see also next example)
        mAdapter = new MyAdapter(myDataset);
        mRecyclerView.setAdapter(mAdapter);
    }
    ...
}

适配器可让您存取数据集中的项目,为项目创建视图,并且在原始项目不再可见时以新数据项目替换视图的某些内容。 下列代码示例将展示一个简单的实现,目标为一个包含使用  TextView  小部件显示的字符串阵列的数据集:

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private String[] mDataset;

    // Provide a reference to the views for each data item
    // Complex data items may need more than one view per item, and
    // you provide access to all the views for a data item in a view holder
    public static class ViewHolder extends RecyclerView.ViewHolder {
        // each data item is just a string in this case
        public TextView mTextView;
        public ViewHolder(TextView v) {
            super(v);
            mTextView = v;
        }
    }

    // Provide a suitable constructor (depends on the kind of dataset)
    public MyAdapter(String[] myDataset) {
        mDataset = myDataset;
    }

    // Create new views (invoked by the layout manager)
    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                   int viewType) {
        // create a new view
        View v = LayoutInflater.from(parent.getContext())
                               .inflate(R.layout.my_text_view, parent, false);
        // set the view's size, margins, paddings and layout parameters
        ...
        ViewHolder vh = new ViewHolder(v);
        return vh;
    }

    // Replace the contents of a view (invoked by the layout manager)
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        // - get element from your dataset at this position
        // - replace the contents of the view with that element
        holder.mTextView.setText(mDataset[position]);

    }

    // Return the size of your dataset (invoked by the layout manager)
    @Override
    public int getItemCount() {
        return mDataset.length;
    }
}

创建卡片

CardView 扩展 FrameLayout 类并让你能够显示卡片内的信息,CardView 小部件可拥有阴影和圆角,如果要使用阴影创建卡片,请使用card_view:cardElevation 属性,CardView 在 Android 5.0 (API 级别 21) 及更高版本中使用真实高度与动态阴影,而在早期的Android 版本中则返回编辑程阴影实现

使用这些属性自定义 CardView 小部件外观:

  • 在布局中设置圆角半径:card_view:cardCornerRadius 属性
  • 在代码中设置圆角半径:CardView.setRadius 方法
  • 设置卡片背景的颜色:card_view:cardBackgrundColor 属性

示例代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    ... >
    <!-- A CardView that contains a TextView -->
    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_gravity="center"
        android:layout_width="200dp"
        android:layout_height="200dp"
        card_view:cardCornerRadius="4dp">

        <TextView
            android:id="@+id/info_text"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </android.support.v7.widget.CardView>
</LinearLayout>
了解更多可以查看 CardView API 官方文档,地址: 点击打开链接


添加依赖项:


RecyclerView 和 CardView 为 v7 支持库的一部分,如果在项目中使用,需要在项目中添加如下依赖:

dependencies {
    ...
    compile 'com.android.support:cardview-v7:21.0.+'
    compile 'com.android.support:recyclerview-v7:21.0.+'
}


三、定义阴影与裁剪视图


Material Design 为 UI 元素引入高度,高度将帮助用户了解每个元素的相对重要性,由于 Z 属性所代表的视图高度将决定其阴影的视觉外观:拥有较高 Z 值的视图将投射更大更柔和的阴影,拥有较高 Z 值的视图将挡住拥有较低 Z 值的视图,不过试图的 Z 值并不影响视图的大小

阴影是由提升的视图的父项所绘制,因此将受到标准视图裁剪的影响,而在默认情况下裁剪将由父项执行,此外,在创建其中的小部件在执行某些操作时会暂时升至视图平面之上的动画时,高度也很实用


指定视图的高度:


视图的 Z 值包含两个组件:

高度:静态组件

转换:用于动画的动态组件

Z = elevation+translationZ

不同视图高度的阴影:



在布局中设置视图的高度:android:elevation属性

在代码中设置是土的高度:View.setElevation()方法

设置视图转换:View.setTranslationZ() 方法

为视图高度添加动画:ViewPropertyAnimator.z()与 ViewPropertyAnimator.translationZ()方法

这里注意:Z 值以 dp (密度独立像素) 为单位度量


自定义视图与轮廓:


视图的背景可绘制对象的边界将决定其阴影的默认形状,轮廓代表图形对象的外形并定义触摸反馈的波纹区域,下面举一个背景可绘制对象的视图示例:

<TextView
    android:id="@+id/myview"
    ...
    android:elevation="2dp"
    android:background="@drawable/myrect" />
背景可绘制对象被定义为一个拥有圆角的矩形:

<!-- res/drawable/myrect.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <solid android:color="#42000000" />
    <corners android:radius="5dp" />
</shape>

视图投射一个带有圆角的阴影,因为背景可绘制对象定义视图的轮廓,如果提供一个自定义轮廓,则此轮廓将替代视图阴影的默认状态


自定义轮廓:


1.扩展 ViewOutlineProvider 类别

2.替代 getOutline() 方法

3.利用 View.setOutlineProvider() 方法向视图的指定新轮廓提供程序


也可以使用 Outline 类别中的方法创建带有圆角的椭圆形和矩形轮廓,视图的默认轮廓提供程序将从视图背景取得轮廓,如果要防止视图投射阴影,请将其轮廓提供程序设置为 null


裁剪视图


裁剪视图可以轻松改变视图的形状,以便于其他设计元素保持一致,可以使用 View.setClipToOutline() 方法或 android:clipToOutline 属性将视图裁剪至其沦落区域,由 Outline.canClip() 方法所决定,仅有矩形、圆形和圆角矩形轮廓支持裁剪


四、定义定制动画

这里不做详细的讲解,需要用到可以参考官方文档:定义定制动画


今天就记录到这里




ANDROID L——Material Design详解(视图和阴影) Android L特性——Material Desgin详细介绍(视图和阴影)。详解视图Elevation,阴影,轮廓,Drawable Tinting,Clipping Views 阅读详情

相关推荐

android Material Design 底部导航栏

android Material Design 底部导航栏实现效果配置gradle依赖compile 'com.android.support:appcompat-v7:25.1.0' //注意:V4包一定要加,material design是依赖V4包的 //不加,某些类可能报“ClassNotFoundException” compile 'com.android.support:support

iszengmh的博客 2586

Android基础——Material Design

Material DesignMaterial Design是什么?ToolbarDrawerLayoutNavigationViewFloatingActionButtonSnackbarCoordinatorLayoutCarView Material Design是什么? Material Design时谷歌推出的一套UI设计规范,主要通过Design Support库来实现。 Toolbar 将ActionBar取消,修改value文件夹下的style.xml,修改parent为NoActionBa

松仔Log的博客 4924

Android使用Material Design实现悬浮按钮

前言 ​ 本文是对《Android第一行代码》第十二章《最佳UI体验——Material Design实战》中关于悬浮按钮实现的学习和记录,主要内容包括—— FloatingActionButton控件 Snackbar控件 CoordinatorLayout布局 其实关于悬浮按钮的实现十分简单,Design Support库中做了大量的封装,只需要运用以上3个基础控件就可以完成一个最简单的...

大山喵写博客的地方 1688

Android Material Design 新控件

本课程介绍Android 5.0 之后材料设计语言中出现的一些新控件类库其中包括RecyclerView CardView TabLayout DrawerLayout ToolBar CoordinatorLayout SnackBar TextInputLayout CollapsingToolBarLayout 等控件的效果及使用用法

Material Design在Android中的应用实践

通知栏是Android系统中非常重要的组件,它负责向用户显示应用程序的重要信息。自定义通知栏可以提供更丰富的用户交互体验,以及满足特定业务需求。本章节将详细介绍Android通知栏的基础知识、自定义实现步骤以及高级自定义技巧。是Android Support Library提供的一个兼容性类,用于构建现代的通知。以下是构建通知的基本步骤:// 创建一个通知构建器.setSmallIcon(R.drawable.notification_icon) // 设置小图标。

weixin_42393362的博客 1109

matlab内读取文件目录时斜杠和反斜杠的使用

@matlab内读取文件目录时斜杠和反斜杠的使用TOC matlab内读取文件目录时,斜杠和反斜杠的使用 最近被斜杠和反斜杠弄晕了,于是总结了一下,在此和大家分享一下。 代码 clear; clc; close all; I1= imread('..\zs1.jpg'); %和代码文件夹同目录的图片 (纯反斜杠) I2= imread('../zs2/zs2.j...

weixin_44456694的博客 6574

Android---Material Design

Material Design 中文名:材料设计语言,是由 Google 推出的全新的设计语言。Google 表示,这种设计语言旨在为手机、平板、台式机和“其它平台”提供更一致、更广泛的“外观和感觉”。Material Design 不再让像素处于同一个平面,而是让它们按照规则处于空间当中,具备不同的维度;Material Design 还规范了 Android 的运动元素;Material Design 更加倾向于用色彩来提示;

qq_44950283的博客 1152

13 万字 C 语言从入门到精通保姆级教程2021 年版

13 万字C语言保姆级教程,从入门到精通。

李南江 61万+

Android开发的UI设计——Material Design

Material Design 是用于指导用户在各种平台和设备上进行视觉、动作和互动设计的全面指南。如需在您的 Android 应用中使用 Material Design,请遵循 Material Design 规范中定义的准则,并使用 Material Design 支持库中提供的新组件和样式。作为Google旗下的一员——安卓,则是将其一些最具代表性一些控件和效果封装在_Material库_,这就让我们开发者可以在不了解Material Design的情况下,也很容易将自己的应用Material化,当然

fjnu_se的博客 1364

告别PS串口焦虑:深入解析AXI Uartlite IP核如何将ZYNQ PL任意引脚变成串口(从Vivado约束到驱动文件全解析)

本文深入解析AXI Uartlite IP核如何将ZYNQ PL任意引脚变成串口,从Vivado约束到驱动文件全解析。通过AXI Uartlite IP核,开发者可以突破PS端UART数量限制,实现高效串口通信。文章详细介绍了IP核架构、Vivado工程配置、驱动开发及调试技巧,帮助开发者快速掌握这一技术。

weixin_33736649的博客 468

别再到处找模板了!手把手教你用Vue3+Element Plus搭建一个‘能跑起来’的管理后台原型

本文详细介绍了如何利用Vue3和Element Plus在72小时内快速搭建一个功能完整的管理后台原型。从环境准备到项目获取、依赖安装、原型定制、数据模拟以及构建优化,手把手教你打造一个可直接演示的后台系统,特别适合创业者快速验证产品逻辑。

weixin_26854555的博客 182

Android Material Design UI方案使用讲解

Google I/O 2014 就已发布了Material Design,最近项目完成后总结一些Material UI 的常见控件使用,总结成系列文章欢迎阅读。

luo_boke的博客 5054

用户存续期价值评估CLV(三) Gamma-Gamma模型 Python模拟

Gamma-Gamma模型 前面已经提到过,Pareto/NBD和BG/NBD模型只对客户存续时间和交易次数进行建模,并不涉及客户未来交易所带来的现金价值。 Gamma-Gamma模型就是对这个问题的一个扩展解决方案。 Gamma-Gamma模型做了如下假设: 从客户角度上来说,交易金额在每个客户的平均交易价值上随机波动。(这一点并不是很有说服力) 所观察到的交易价值均值是隐含价值均值 ????(????) 的非完美计量 交易价值均值在客户中是变化的,即使这个值是稳定的(这个假设非常大) 在客户中的平

weixin_43171270的博客 4368

安卓开发Material Design 3

摘要:Material Design 3(MD3)是Google推出的最新设计系统,通过动态色彩、增强可访问性和现代视觉风格提升用户体验。本文以"MD3Showcase"项目为例,详细介绍MD3在Android应用中的实现方法,包括主题配置、组件应用(如MaterialToolbar、MaterialCardView、Slider等)以及深色模式支持。项目展示了12+种核心组件,实现动态色彩、响应式设计和流畅交互,为开发者提供完整的MD3应用实践指南。

2301_80789262的博客 1009

Pytorch CIFAR10图像分类 EfficientNet v1篇

EfficientNet源自Google Brain的论文EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks. 从标题也可以看出,这篇论文最主要的创新点是. 论文提出了,混合缩放,把网络缩放的三种方式:深度、宽度、分辨率,组合起来按照一定规则缩放,从而提高网络的效果。EfficientNet在网络变大时效果提升明显,把精度上限进一步提升,成为了当前最强网络。

风信子的猫Redamancy的快乐星球 1852

MoCap 动作捕捉开源库教程

数据通过 tf2 和支持不同 QoS 设置的 /poses 主题直接发布。该软件包最初是为 Crazyswarm 开发的,用于跟踪多达 50 个飞行机器人。

机器人控制与仿真应用 1307

探索安卓Material Design的惊艳魅力:开源项目演示实例

探索安卓Material Design的惊艳魅力:开源项目演示实例 在当今的移动应用设计中,谷歌的Material Design以其独特的设计理念和流畅的动效体验,成为了开发者和设计师们的首选标准。这个开源项目由@saulmm维护,旨在通过一系列生动的例子,帮助开发者更好地理解和实现Material Design中的关键元素和技术。 项目介绍 Android-Material-Examples是一...

gitblog_00070的博客 484

【第一章】基于Simulink的控制器开发教程——目录

摘要:本文系统介绍了基于Simulink的控制器开发方法,涵盖PID、状态反馈、模型预测(MPC)、模糊控制、自适应控制等8类主流控制器。针对每种控制器,详细阐述了其基本原理、适用场景,并通过Simulink建模与仿真测试进行实践验证。文章采用"理论+实践"的结构,从算法设计到硬件实现全流程展开,为汽车、航空航天、工业控制等领域的控制器开发提供完整解决方案,最后通过应用对比与学习总结帮助读者掌握不同控制器的核心特性和应用场景。(149字)

熟悉MATLAB/fpga/RK3588/LABVIEW/protus/单片机/dsp/Multisim 388

安卓进阶——Material Design库

本文介绍了Android Material Design库中的12个核心组件及其应用场景。Toolbar替代传统ActionBar,提供灵活定制;NavigationView实现侧滑菜单;FloatingActionButton作为醒目操作按钮;Snackbar提供轻量提示;CardView展示卡片式布局;BottomSheetBehavior实现底部弹窗;DrawerLayout管理侧滑抽屉;CoordinatorLayout协调视图交互;AppBarLayout和CollapsingToolbarLay

Meteors.的博客 1148

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Android:Material Design(二) Material主题

Android:Material Design(一) 概述 Android:Material Design(二) Material主题 Android:Material Design(三) 动画 Android:Material Design(四) UI控件 Android:Material Design(五) 视图和阴影 Android:Material Design(六) 使用Draw

BAOLIANG196的博客 1476

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Android :安卓第一行代码学习笔记之 material design简单理解和使用

material design简单理解和使用material design简单理解和使用1、 Toolbar2、 滑动菜单2.1、DrawerLayout2.2、NavigationView3、 悬浮按钮和可交互提示3.1、悬浮按钮3.2、Snackbar3.3、CoordinatorLayout4、 卡片式布局4.1、CardView4.2、AppBarLayout5、 下拉刷新6、 可折叠式标题栏6.1、CollapsingToolbarLayout参考 material design简单理解和使用 M

JMW1407的博客 2398

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android Material Design:入门指南

Material Design 是 Google 推出的设计语言,旨在通过统一的视觉、交互和运动设计准则,为用户提供一致、美观和直观的体验。使用新版本的Android studio 创建的项目现在是默认支持AndroidX库&Material Design的。Material Design 中的卡片 (Card) 是一个常见的布局元素,用于展示内容块。Snackbar 是一种轻量级通知组件,用于展示短暂的消息,同时提供可操作的按钮。应用的背景颜色,确保文本与背景的对比度足够高。其他的Theme有如下。

konoaquada的博客 2170

安卓linux主题下载官网,创建Material Design风格的Android应用--应用主题

目录Android 5使用Material Design风格较低版本使用Material Design风格PS:就写这么多吧。下次写使用CardView 和RecyclerView。做Material Design的List 和Card布局。 (我英文不好,可能有些地方也理解的不好。)Ggoogle已经正式发布了Android 5,同时android developer网站也更新了,增加了创建Ma...

weixin_32306683的博客 252

基础Android之Material Design

现在Android推出了一套全新的界面设计语言——Material Design。我总结一下目前常用的,但不具体的去写,喜欢的可以去搜一下具体的知识,研究一下   1.ToolBar      现在官方意见不再建议使用ActionBar,而更加推荐使用Toolbar,它不仅继承了ActionBar的所有功能,而且灵活性更高。实现出来的界面其实跟ActionBar一样。       se

a1027317350的专栏 853

Unity Netcode for Entities 示例工程解析:从 NetCube 到 HelloNetcode 的多人游戏实战路线

本篇技术指南基于 `NetcodeSamples` 示例工程,系统讲解 Unity Netcode for Entities 包的核心能力(服务器权威同步、RPC、客户端/服务端世界引导、插值与客户端预测、混合模型支持等),以及工程内 NetCube、HelloNetcode、Asteroids、PredictionSwitching、PlayerList 五个官方样例的组成、适用场景与关键源码实

gitblog_00263的博客 1166
上一篇: Android 数据存储方案
下一篇: Android ToolBar 完全解析
QDJdeveloper
博客等级 码龄11年 108粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值