精华内容
下载资源
问答
  • Android布局之联系列表

    千次阅读 2016-06-04 13:59:46
    我们经常看到Android手机上应用或者自带的电话联系页面是通过怎么的布局实现的呢?一个联系列表可包含头像,姓名,电话号码,还有右边的26个字母导航,其实都是通过ListView控件以及合适的Adapter来实现的 下面...

    我们经常看到Android手机上应用或者自带的电话联系人页面是通过怎么的布局实现的呢?一个联系人列表可包含头像,姓名,电话号码,还有右边的26个字母导航,其实都是通过ListView控件以及合适的Adapter来实现的

    下面先看一个我做的一个简单联系人列表的截图


    可以通过点击右边导航栏上的字母快速定位到指定字母在首行显示,另外在每个姓名相同的姓上面显示该姓的首字母,用于方便查询


    下面就上传一个源代码,希望都能看的明白!!

    Android 联系人列表

    展开全文
  • Android原生扰烦的布局 在开发Android应用时,UI布局是一件令烦恼的事情。下面主要讲解一下Android中的界面布局。一、线性布局(LinearLayout) 线性布局分为: (1)垂直线性布局; (2)水平线性布局; 针对这...

    Android原生扰人烦的布局

          在开发Android应用时,UI布局是一件令人烦恼的事情。下面主要讲解一下Android中的界面布局。

    一、线性布局(LinearLayout)

          线性布局分为:

          (1)垂直线性布局;

          (2)水平线性布局;

          针对这两种区别,只是一个属性的区别

     

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:orientation="vertical"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent">  
    </LinearLayout> 

     

          水平线性布局的话,android:orientation="horizontal" 即可。

    二、 相对布局(RelativeLayout)

           一般线性布局满足不了们实际项目中的需要,就是一般做Web界面的UI设计一样,也是存在相对元素的一些CSS样式的布局。RelativeLayout参数有:Width,Height,Below,AlignTop,ToLeft,Padding,和MerginLeft。

          关键源码:

     

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent">  
        <TextView  
            android:id="@+id/label"  
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content"  
            android:text="请输入:"/>  
        <EditText  
            android:id="@+id/entry"  
            android:layout_width="fill_parent"  
            android:layout_height="wrap_content"  
            android:background="@android:drawable/editbox_background"  
            android:layout_below="@id/label"/>  
        <Button  
            android:id="@+id/ok"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_below="@id/entry"  
            android:layout_alignParentRight="true"  
            android:layout_marginLeft="10dip"  
            android:text="确定" />  
        <Button  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_toLeftOf="@id/ok"  
            android:layout_alignTop="@id/ok"  
            android:text="取消" />  
    </RelativeLayout>  

     

          其中,android:layout_below=”@id/label”设置了EditText处于TextView下方;在Button中android:layout_below=”@id/entry”设置该Button位于EditText下。

          实例效果:

    三、表单布局(TableLayout)

          TableLayout由许多TableRow组成,每个TableRow都会定义一个Row。TableLayout容器不会显示Row,Column或Cell的边框线,每个Row拥有0个或多个Cell,每个Cell拥有一个View对象。表格由行和列组成许多单元个,允许单元格为空。但是单元格不能跨列,这与Html不同。

     

    <View  
        android:layout_height="2dip"
        android:background="#FF909090" />
    <TableRow>  
        <TextView  
            android:text="*"  
            android:padding="3dip" />  
        <TextView  
            android:text="导入..."  
            android:padding="3dip" />  
    </TableRow>  
    <TableRow>  
        <TextView  
            android:text="*"  
            android:padding="3dip" />  
        <TextView  
            android:text="导出..."  
            android:padding="3dip" />  
        <TextView  
            android:text="Ctrl-E"  
            android:gravity="right"  
            android:padding="3dip" />  
    </TableRow>  

     

          实例效果:

          android:gravity="center" 书面解释是权重比。其时就是让它居中显示。

          android:stretchColumns="1,2,3,4" 它的意思就是自动拉伸1,2,3,4列。

          若需实现组件居中显示,布局应如下:

     

              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_gravity="center_vertical|center_horizontal"

     

          TableRow平分列

          每一列的宽度设置为android:layout_width="0.0dip",在设置每一列的android:layout_weight=“1”

          因为ayout_weight是将剩余空间按权重分配,而不是将全部空间按权重分配。

          代码如下:

     

    <TableRow 
        android:paddingTop="15px">
        <Button
            android:id="@+id/Register"
            android:text="@string/register"
            android:layout_width="0.0dip"
            android:layout_weight="1"
            android:onClick="register"/>
        <Button
            android:id="@+id/cancel"
            android:layout_width="0.0dip"
            android:layout_weight="1"
            android:text="@string/button_cancel" />
        </TableRow>

     

          视图如下:

     

    四、切换卡(TabWidget)

          切换卡经常用在一下选项上,类似于电话簿界面,通过多个标签切换显示不同内容。而其中,TabHost是一个用来存放Tab标签的容器,通过getTabHost方法来获取TabHost的对象,通过addTab方法向容器里添加Tab。Tab在切换时都会产生一个事件,可以通过TabActivity的事件监听setOnTabChangedListener.

    【扩展点】TabHost

    类概述

          提供选项卡(Tab页)的窗口视图容器。此对象包含两个子对象:一组是用户可以选择指定Tab页的标签;另一组是FrameLayout用来显示该Tab页的内容。个别元素通常控制使用这个容器对象,而不是设置在子元素本身的值。

    (译者madgoat注:即使使用的是单个元素,也最好把它放到容器对象ViewGroup里)

    内部类

          interface TabHost.OnTabChangeListener    

          接口定义了当选项卡更改时被调用的回调函数

          interface TabHost.TabContentFactory  

          当某一选项卡被选中时生成选项卡的内容

          class TabHost.TabSpec     

         单独的选项卡,每个选项卡都有一个选项卡指示符,内容和tag标签,以便于记录.。

    关键源码

     

    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"  
        android:id="@android:id/tabhost"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent">  
        <LinearLayout  
            android:orientation="vertical"  
            android:layout_width="fill_parent"  
            android:layout_height="fill_parent">  
            <TabWidget  
                android:id="@android:id/tabs"  
                android:layout_width="fill_parent"  
                android:layout_height="wrap_content" />  
            <FrameLayout  
                android:id="@android:id/tabcontent"  
                android:layout_width="fill_parent"  
                android:layout_height="fill_parent">  
                <TextView   
                    android:id="@+id/textview1"  
                    android:layout_width="fill_parent"  
                    android:layout_height="fill_parent"   
                    android:text="this is a tab" />  
                <TextView   
                    android:id="@+id/textview2"  
                    android:layout_width="fill_parent"  
                    android:layout_height="fill_parent"   
                    android:text="this is another tab" />  
                <TextView   
                    android:id="@+id/textview3"  
                    android:layout_width="fill_parent"  
                    android:layout_height="fill_parent"   
                    android:text="this is a third tab" />  
            </FrameLayout>  
        </LinearLayout>  
    </TabHost> 

     

         处理类

     

    //声明TabHost对象  
        TabHost mTabHost;  
        public void onCreate(Bundle savedInstanceState)  
        {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
            //取得TabHost对象  
            mTabHost = getTabHost();  
            /* 为TabHost添加标签 */  
            //新建一个newTabSpec(newTabSpec)  
            //设置其标签和图标(setIndicator)  
            //设置内容(setContent)  
            mTabHost.addTab(mTabHost.newTabSpec("tab_test1")  
                    .setIndicator("TAB 1",getResources().getDrawable(R.drawable.img1))  
                    .setContent(R.id.textview1));  
            mTabHost.addTab(mTabHost.newTabSpec("tab_test2")  
                    .setIndicator("TAB 2",getResources().getDrawable(R.drawable.img2))  
                    .setContent(R.id.textview2));  
            mTabHost.addTab(mTabHost.newTabSpec("tab_test3")  
                    .setIndicator("TAB 3",getResources().getDrawable(R.drawable.img3))  
                    .setContent(R.id.textview3));  
            //设置TabHost的背景颜色  
            mTabHost.setBackgroundColor(Color.argb(150, 22, 70, 150));  
            //设置TabHost的背景图片资源  
            //mTabHost.setBackgroundResource(R.drawable.bg0);  
            //设置当前显示哪一个标签,默认下标从0开始
            mTabHost.setCurrentTab(0);  
            //标签切换事件处理,setOnTabChangedListener   
            mTabHost.setOnTabChangedListener(new OnTabChangeListener(){  
                public void onTabChanged(String tabId) {  
                    Dialog dialog = new AlertDialog.Builder(Examples_04_29Activity.this)  
                            .setTitle("提示")  
                            .setMessage("当前选中:"+tabId+"标签")  
                            .setPositiveButton("确定",  
                            new DialogInterface.OnClickListener() {  
                                public void onClick(DialogInterface dialog, int whichButton){  
                                    dialog.cancel();  
                                }  
                            }).create();//创建按钮  
                    dialog.show();  
                }              
            });  
        }  

     

          实例效果:

     

    参考文献

    1.http://blog.csdn.net/fancylovejava/article/details/45787729/

    美文美图

     

    展开全文
  • iPhone X官方机交互指南 - 尺寸分辨率布局等 苹果十周年纪念款手机iPhone X已经发布,齐刘海成立当今的热门话题,但是作为开发者必须对最新的iPhone X有一个更全面的了解。

    苹果十周年纪念款手机iPhone X已经发布,齐刘海成立当今的热门话题,但是作为开发者必须对最新的iPhone X有一个更全面的了解。

    苹果官方地址

    iPhone X

    iPhone X包括一个大型,高分辨率,圆形的边缘到边缘的显示器,提供了一个沉浸式,内容丰富的体验,从未像以前那样。

    屏幕尺寸

    在纵向方向上,iPhone X上的显示屏的宽度与iPhone 6,iPhone 7和iPhone 8的4.7“显示屏的宽度相匹配。然而,iPhone X上的显示器比4.7”显示器高145个,导致大约20%的内容垂直空间。

    **为您的应用程序中的所有图稿提供高分辨率图像。
    iPhone X具有比例因子为@ 3x的高分辨率显示。
    对于字形和其他平面的矢量图形,最好提供独立于分辨率的PDF。
    对于光栅化图稿,您可以提供@ 3x和@ 2x版本的作品。**
    请参阅图像大小和分辨率自定义图标

    关于屏幕尺寸的个人补充

    iPhone X的尺寸是1125x2436像素,可以看出来1125是750的1.51倍,375的3倍,那么就可以适配@3X

    iPhone机型对比
    从上图可知,iPhone X与Plus系列公用一套图,设计稿尺寸选750x1334px,对应输出@2X和@3X图即可。

    布局

    在设计iPhone X时,您必须确保布局填满屏幕,并且不会被设备的圆角,传感器外壳或用于访问主屏幕的指示灯遮蔽。

    大多数使用标准系统提供的UI元素(如导航栏,表格和集合)的应用程序会自动适应设备的新外形。背景材料延伸到显示器的边缘,并且UI元件被适当地插入和定位。

    对于具有自定义布局的应用,支持iPhone X也应该比较容易,特别是如果您的应用使用自动布局并遵守安全区域和边距布局指南。

    在iPhone X上预览您的应用程序。您可以使用Simulator(Xcode附带)来预览应用程序,并检查剪辑和其他布局问题。一些功能,如宽彩色图像,最好在实际设备上预览。

    提供全屏体验。确保背景延伸到显示器的边缘,并且垂直可滚动的布局(如表格和集合)一直延续到底部。

    插入必要内容以防止剪辑。一般来说,内容应该是居中对称的,所以它在任何方向看起来都很棒,不会被角落或设备的传感器外壳夹住,或被访问主屏幕的指示器遮挡。为获得最佳效果,请使用标准的系统提供的界面元素和自动布局构建您的界面。所有应用程序都应遵循UIKit定义的安全区域和布局边距,这些区域可以根据设备和上下文进行适当的填充。安全区域还可以防止内容覆盖状态栏,导航栏,工具栏和标签栏。

    注意状态栏的高度。状态栏在iPhone X上比在其他iPhone上更高。如果您的应用假定固定状态栏的高度用于将内容定位在状态栏的下方,则必须更新您的应用,才能根据用户的设备动态定位内容。请注意,当背景任务(如录音和位置跟踪)处于活动状态时,iPhone X上的状态栏不会改变高度。

    如果您的应用程序目前隐藏状态栏,请重新考虑iPhone X上的决定。iPhone上的显示高度为4.7“iPhone的显示屏提供了更多的内容垂直空间,状态栏占据您应用程序可能赢得的屏幕区域状态栏还显示人们发现有用的信息,只能隐藏以交换附加值。


    在重复使用现有图稿时,请注意长宽比差异。iPhone X具有不同于4.7“iPhone的长宽比,因此,全屏4.7”iPhone图形在iPhone X上全屏显示时出现裁剪或letterboxed。同样,全屏iPhone X图稿在显示时被裁剪或被柱状显示全屏显示在4.7“iPhone上,确保重要的视觉内容保持在两种显示尺寸上。

    避免将交互式控件明确放置在屏幕底部和角落。人们使用显示屏底部的滑动手势访问主屏幕和应用程序切换器,这些手势可能会取消您在此区域中实现的自定义手势。屏幕的两个角落可能是困难的地方让人们舒适地到达。

    不要掩盖或特别注意关键显示功能。请勿尝试隐藏设备的圆角,传感器外壳或通过在屏幕顶部和底部放置黑色条来访问主屏幕的指示器。不要使用像括号,边框,形状或教学文字等视觉装饰,也要特别注意这些区域。

    允许自动隐藏指示灯,以便轻松访问主屏幕。当启用自动隐藏时,如果用户没有触摸屏幕几秒钟,指示灯将熄灭。当用户再次触摸屏幕时,它会重新出现。这种行为应该只能用于被动观看体验,如播放视频或照片幻灯片。

    请参阅适应性和布局

    颜色

    iPhone X上的显示器支持P3色彩空间,可以产生比sRGB更丰富,更饱和的颜色。

    **使用广泛的颜色来增强视觉体验。
    使用宽颜色的照片和视频更加逼真,使用宽色的视觉数据和状态指示器更有影响力。**请参阅颜色管理

    手势

    iPhone X上的显示屏使用屏幕边缘手势来访问主屏幕,应用程序切换器,通知中心和控制中心。

    避免干扰系统范围的屏幕边缘手势。
    人们依靠这些手势在每个应用程序中工作。
    在极少数情况下,像游戏这样的沉浸式应用程序可能需要自定义的屏幕边缘手势,优先于系统的手势 - 第一个滑动会调用特定于应用的手势,而第二次滑动则会调用系统手势。这种行为(称为边缘保护)应该谨慎实施,因为它使得用户难以访问系统级的操作。见手势

    附加设计注意事项

    **参考认证方法准确。iPhone X支持Face ID进行身份验证。
    如果您的应用程序与Apple Pay或其他系统身份验证功能集成,请勿在iPhone X上引用Touch ID。同样,请确保您的应用程序在支持Touch ID的设备上未引用Face ID。**请参阅验证

    **不要重复系统提供的键盘功能。在iPhone X上,即使使用自定义键盘,Emoji / Globe按钮和Dictation按钮也自动显示在键盘的下方。
    您的应用程序不能影响这些按钮,因此避免在键盘中重复这些按钮造成混乱。**请参阅自定义键盘

    资源

    下载Photoshop和Sketch 资源中的 iPhone X UI设计模板。

    展开全文
  • 约束布局ConstraintLayout加快布局速度

    千次阅读 2016-12-16 10:43:48
    Android Studio2.2更新布局设计器,同时,引了约束布局ConstraintLayout。简单来说,可以把它看做是相对布局的升级版本,但是区别与相对布局更加强调约束。何为约束,即控件之间的关系。它能让你的布局更加扁平化...

    Android Studio2.2更新布局设计器,同时,引人了约束布局ConstraintLayout。

    简单来说,可以把它看做是相对布局的升级版本,但是区别与相对布局更加强调约束。何为约束,即控件之间的关系。

    它能让你的布局更加扁平化,一般来说一个界面一层就够了;同时借助于AS我们能极其简单的完成界面布局。

    ConstraintLayout简介​

    ConstraintLayout的优点非常突出。

    ConstraintLayout不需要使用嵌套布局就可以让我们去构建一个大而复杂的布局, 他与RelativeLayout很相似,所有在里面的View的布局方式取决于View与View之间的关系和父布局。但是他比RelativeLayout 更灵活,并且在Android Studio’s Layout Editor中可以很容易的去使用。

    ConstraintLayout的所有工作都可以使用布局编辑器的可视化工具中完成,因为布局API和布局编辑器对此专门构建的。因此你可以完全通过拖拽的方式去构建一个使用了ConstraintLayout 的布局,而不用直接在XML中编辑。

    参考下图:

    这个界面主要分成下面几个部分:

    • 左侧边栏,包括Palette组件库和Component Tree
    • 中间是布局设计器,包括两部分,左边是视图预览,右边是布局约束
    • 右侧边栏,上面是类似盒子模型的边界和大小布局设计器,下面是属性列表。

    简单介绍完了约束布局的特色和开发界面,接下来来看看如何使用约束布局。

    添加约束布局

    使用约束布局,必须确保你拥有最新的约束布局的库。

    1. 点击Tools > Android > SDK Manager

    2. 点击SDK Tools Tab

    3. 展开Support Repository,然后勾选ConstraintLayout for Android 和Solver for ConstraintLayout。勾选Show Package Details,注意你下载的版本。

    4. 点击OK


    添加ConstraintLayout库到你的build.gradle文件中,目前最新版本是beta4

    dependencies {
      //...
      compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4'
    }

    你下载的这个库的版本可能会更高,确保与你之前下载的版本匹配即可。

    使用约束布局

    新建的项目,自动生成的布局默认不会使用ConstraintLayout,但是Android Studio提供了便捷的方式,可以直接转换成ConstraintLayout。

    1. 打开你的布局文件,切换到Design tab

    2. 在Component Tree窗体中,右击布局文件,然后点击Convert layout to ConstraintLayout(如下图)。

    这里写图片描述

    当然,
    也可以新建一个新的约束布局。
    新建一个布局文件

    输入布局文件的名字,将布局的根元素改为
    android.support.constraint.ConstraintLayout

    最后点击完成

    添加约束

    拖一个View到布局编辑器中。当你添加了一个View到ConstraintLayout中,他的四个角对应着的四个小矩形框是控制大小的,每一条边有四个圆形的约束控制点。
    这里写图片描述

    这里主要包含几种类型的约束

    1. 尺寸大小
    2. 边界约束
    3. 基准线约束
    4. 约束到一个引导线(辅助线)

    尺寸大小

    尺寸约束使用的是『实心方块』,如图:


    这个很好理解,就是调整组件的大小。

    你可以使用View每个角的控制点去调整其大小,但是这样做只是把宽高写死,这样做不能适应不同的内容和不同的屏幕大小,我们应该避免这样去使用。为了选择一个动态的大小模式或者定义一个更具体的尺寸,请单击并打开编辑器右侧的Properties窗口,如下图。

    灰色的矩形区域,代表选择的View,矩形的的符号代表宽和高。

    • (>>>)Wrap Content:View的大小与其内容适配

    • (有点像弹簧的图标)Any Size:View大小刚好匹配其对应的约束,他的实际值是0dp,表示这个View没有期望的尺寸,但是他渲染后的大小将会匹配其约束。

    • (直线)Fixed:View的大小的是固定的

    点击符号即可在上面三种模式中互相切换。

    注意:你不应该在ConstraintLayout中使用match_parent,而是使用0dp

    边界约束

    边界约束使用的是『空心圆圈』,如图:

    边界约束,是使用最多的约束,它用于建立组件与组件之间、组件与Parent边界之间的约束关系,实际上,就是确定彼此的相对位置。

    单击View选中,然后单击并按住一个约束控制点拖拽这条线到一个可用的锚点(其他View、Layout的边缘或者引导线),当你松开,这个约束将会被创建,两个View也将被默认的margin隔开。

    为了确保左右的View都被均衡的隔开,点击工具栏的Margin 去为新添加进布局的View选择一个默认的margin值。

    Button将会显示你当前选择的值,你做的更改将应用于之后你新添加的View。
    你也可以通过点击Properties面板线上的数字去更改margin的值。

    工具中提供的margin值全是8的倍数,帮助你的View与Material Design的推荐的8dp的方形网格保持一致

    基准线约束

    基准线约束,使用的是『空心圆角矩形』,如图:

    基准线约束,是让两个带有文本属性的组件进行对齐的,可以让两个组件的文本按照基准线进行对齐。唯一要注意的是,你需要把鼠标放在控件上,等基准线约束的图形亮了,才可以进行拖动。

    约束到一个引导线(辅助线)

    你可以添加一个水平和垂直方向上的引导线,这可以当做你的附加约束。你在布局内可以定位这个引导线,dp和百分比作为单位均可。

    想要创建这个引导线,在工具栏点击Guidelines(如下图),然后点击Add Vertical Guidelineo或者Add Horizontal Guideline即可。

    拖动引导线中间的圆即可定位引导线的位置。

    当你创建一个约束的时候,一定要记得下面几点规则:

    1. 每一个View必须有两个约束:一个水平的,一个垂直的。

    2. 只有约束控制点和另外一个锚点在同一平面才能创建约束(也就是说将要创建的约束的View和锚点View属于同一级)。因此一个View的垂直平面(左侧和右侧)只能被另一个的垂直平面约束,基线只能被其他基线约束。

    3. 一个约束控制点,只能被用来创建一次约束,但是可以在同一锚点创建多个约束(来自不同的View)

    如果你想要删除一个约束,先选举中View,然后点击需要删除的约束控制点即可。

    使用自动连接和约束推断

    自动连接(Autoconnect) 为添加进布局的View自动创建两个或者多个约束,Autoconnect 默认被禁用,你可以通过点击编辑器工具栏中的Turn on Autoconnect(一个有点像磁铁的图片)开启他。

    当你开启了Autoconnect,当你添加新的View到布局之后Autoconnect就会自动创建约束,他不会为已经存在的View创建约束。如果你拖动View一次,约束就值将会改变,但是之前的约束本身不会被改变。所以如果你想重新去定位View,那么你必须删除之前的约束。

    或者,你可以点击Infer Constraints(一个有点像电灯的图标)去为布局中所有的View创建约束

    Infer Constraints扫描整个布局为所有的View决定一套最有效的约束,因此他可以创建两个距离很远的View之间的约束。然而Autoconnect,只能为新添加进布局的View创建约束,并且他创建的约束仅仅只能是距离最近的元素。在这两种情况下,你可以随时通过点击约束控制点去删除约束然后创建新的约束去修改他。

    快速对齐Align

    工具栏中有个对齐图标,可以点击按钮直接让多个控件对齐。

    最后,上面一些操作还可以通过右键点击控件找到。


    更多精彩请关注微信公众账号likeDev
    这里写图片描述

    展开全文
  • 网页布局

    千次阅读 2016-07-30 23:37:05
    一、新式布局案例1、垂直分割布局2、块状分割布局3、单屏布局二、网页布局的结构类型 T型布局 这是一个形象的说法,是指页面的定不是“网站标志+广告条”,左面是主菜单,右面是主要内容。这种布局的优点是页面...
  • [响应式布局]响应式布局技巧

    千次阅读 多人点赞 2016-10-09 01:39:08
    一理解几种布局的概念1、静态布局(Static Layout) 即传统Web设计,对于PC设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查阅被遮掩部分; 意思就是不管浏览器尺寸具体是多少,网页布局就按照...
  • 看阿里布局 品阿里野心 每个其实都是个小透明

    千次阅读 多人点赞 2018-11-15 13:42:43
    看阿里布局 品阿里野心 为什么这么说?打开你的手机,看看你有多少阿里巴巴旗下的软件。淘宝、支付宝、饿了么、口碑、优酷、虾米......等等等等 基本上是覆盖了吃喝住行乐全方面,也就是说,你生活中所有的事情都...
  • 【D3.js】力导向布局 + 圆形图片展示的人物关系

    万次阅读 热门讨论 2016-11-18 16:06:29
    //D3力导向布局 var force = d3.layout.force() .nodes(root.nodes) .links(root.edges) .size([width,height]) .linkDistance( 200 ) .charge(- 1500 ) .start(); //边 var edges_line = svg....
  • android约束布局

    千次阅读 2018-09-03 20:09:48
    约束布局是谷歌在 ...盗个别对比的图: 从图中我们可以看出性能上约束布局比相对布局性能要好上40%左右,因此有这么好的布局方式为什么不用呢。 使用方式: 1.在项目中添加依赖: dependencies { ...
  • Qt 之手动布局

    万次阅读 2016-05-30 11:05:35
    简述手动布局,可以实现和水平布局、垂直布局、网格布局等相同的效果,也可实现属于自己的自定义布局,当窗体缩放时,控件可以随之变化。其对于坐标系的建立有严格要求,纯代码思维,使用复杂,不易维护,所以一般不...
  • 流式布局与响应式布局

    千次阅读 2018-04-13 09:42:39
    常见的面试题会让你聊一聊流式布局与响应式布局,我还没遇到过直接问他俩区别的面试官,都是根据我的项目(里面有用到流式布局+响应式布局)。围绕这两点感觉网上大部分博客都长得差不多,那我就用自己粗浅的理解说...
  • 军棋单挑布局经验----千棋手

    千次阅读 2019-05-09 10:49:09
    军棋单挑和下四国不太一样,单挑比较考验棋手的全方面能力(包括博弈心态和大局视野等等),起手被对面单边狂攻,自己的大子纷纷落马,却无力招架,炸弹不在周边,往往是失败的关键。所以在我看来一个好的布局是一盘...
  • 今天写一篇关于duilib的入门日志,大致说一下duilib中的各个布局的作用,以及很关键的相对布局与绝对布局的意义于用法。希望可以帮到使用duilib的新手朋友们。duilib高手就可以直接省略这篇文章了!
  • android代码布局

    千次阅读 2019-01-11 09:16:25
    android代码布局(一) 习惯了用xml来写布局的,再用代码来写布局,恐怕会很类。但毕竟有时候,我们还是需要用到代码来写布局。 代码布局与xml布局有很多相似点...关于这个问题只针对初级水平的人员,其他可略过。...
  • 老生长谈:css实现右侧固定宽度,左侧...一般情况下,这种布局中宽度固定的区域是侧边栏,而自适应的区域是主体内容区——相信把侧边栏搞成自适应的很少吧?要实现这种布局,也算比较简单。我们先给出html结构:12...
  • 想实现类似下面的功能: 《朝花夕拾》原名《________》,是________ 的回 ...因为要填的内容长度不固定,因此页面布局要怎么?想让固定的文字和变长的文字在同一行,大神能提供一点思路吗?该怎么?
  • 一、静态布局(static layout)即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位。1、布局特点 不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示。常规的pc的网站都是静态(定宽度)...
  • 有的使用xib/storyboard自动布局,也有使用frame来适配。对于前者,笔者并不喜欢,也不支持。对于后者,更是麻烦,到处计算高度、宽度等,千万大量代码的冗余,对维护和开发的效率都很低。笔者在这里介绍纯代码...
  • 当设计的网站会面向众多用户时,设计师必须考虑访客之间的下列潜在差异: 屏幕分辨率用的哪款浏览器浏览...1. 固定布局和流动布局的差异 尽管大部分设计师和开发者都对固定和流动网页布局有基本的了解,我们还
  • 新手网页设计?这9款经典网页布局设计了解下

    万次阅读 多人点赞 2018-08-29 10:18:23
    现在,越来越多的想要建立自己的网站,通过自助建站系统就可以自己进行网页制作了。这无疑是一件好事,但是,很多设计师,尤其是新手设计师或者压根儿就不是设计师的小白,都在网页设计上走过不少弯路。 网页制作...
  • EXTJs 布局

    千次阅读 2013-05-05 10:20:12
    FitLayout 自适应布局 FitLayout 是布局的基础类,对应面板布局配置项(layout)的名称为 fit,使用 fit 布局将使面板子元素自动充满容器,如果在当前容器中存在多个子面板则只有第一个会被显示。 Ext....
  • 在刚开始学习使用android studio的时候,有些可能还不太会怎么创建各种布局,创建完之后,按照材料上的代码写程序,总是和材料上的不一样,这种情况下可能就是你的布局创建错了。例如:你创建了一个线性布局,却要...
  • HTML+CSS基础训练之一个简单页面的布局

    千次阅读 多人点赞 2020-05-15 23:59:16
    **下面进入正题:**布局是网页设计的基础中的基础,一个好的布局可以让一目了然,一个失败的布局会让协同人员抓狂。所以前端开发,从布局开始。 任务介绍: 如图所示:一个比较基础的居中布局。Body指的是窗口,...
  • 小程序的居中布局,你可以这样

    千次阅读 2018-06-14 14:14:55
    前段时间小程序上线后就弃坑了,回到网页开发去了,最近又有新项目,再次入坑,难免需要一些demo来重新熟悉,在这个过程中,发现demo中很少有使用flex布局,今天给大伙稍微讲一下这个布局。 flex布局有啥用呢,...
  • 有的使用xib/storyboard自动布局,也有使用frame来适配。对于前者,笔者并不喜欢,也不支持。对于后者,更是麻烦,到处计算高度、宽度等,千万大量代码的冗余,对维护和开发的效率都很低。笔者在这里介绍纯代码...
  • 有的使用xib/storyboard自动布局,也有使用frame来适配。对于前者,笔者并不喜欢,也不支持。对于后者,更是麻烦,到处计算高度、宽度等,千万大量代码的冗余,对维护和开发的效率都很低。笔者在这里介绍纯代码...
  • FrameLayout布局

    万次阅读 2013-05-23 00:07:54
    1、所有放在布局里的控件,都按照层次堆叠在屏幕的左上角。后加进来的控件覆盖前面的控件。在FrameLayout布局里,定义任何空间的位置相关的属性都毫无意义。 2、android:gravity="right"是控制控件内部文本的格式的...
  • CSS弹性布局

    千次阅读 2018-05-29 17:08:32
    CSS3弹性伸缩布局简介2009年,W3C提出了一种崭新的方案----Flex布局(即弹性伸缩布局),它可以简便、完整、响应式地实现各种页面布局,包括一直让很头疼的垂直水平居中也变得很简单地就迎刃而解了。但是这个布局...
  • 弹性布局小技巧

    千次阅读 2019-08-10 12:01:22
    大对数刚学完弹性布局时候会很疑惑,写出来的东西总是不尽人意,总有那种我明明是这样想的,为什么出来是另一种效果 弹性布局对图片的处理 有时候我们会直接用弹性布局图片,比如三张图片往里一放,父级直接加...
  • 水平和垂直布局详解 在原生Android开发中,我们经常会用LinearLayout来达到水平或垂直方向的布局, 在原生IOS 开发中,水平或垂直方向的布局,只需要通过计算位置,通过设置frame来实现, 在Flutter中使用Row和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 363,849
精华内容 145,539
关键字:

做局的人,布局的人