精华内容
下载资源
问答
  • 在上次的scrum冲刺中,我将整个长沙学院的APP做了一个基本的架构设计以及框架设计,确定好了APP的功能结构以及实现时所要达到的效果,并且做了一个简单的用户登录界面,由于所学知识有限,我只能通过后期的自学来...

    一、简单回顾

           在上次的scrum冲刺中,我将整个长沙学院的APP做了一个基本的架构设计以及框架设计,确定好了APP的功能结构以及实现时所要达到的效果,并且做了一个简单的用户登录界面,由于所学知识有限,我只能通过后期的自学来完善登录界面,以下是我上次做的一个链接,所有的布局及想法都在里面,有兴趣的朋友可以进去看一下,如果有什么不足的地方还请留言多多指教,链接:http://www.cnblogs.com/dongdongwang/p/8611527.html

     

    二、校园模块的简单介绍

    校园模块所涵盖的功能与长沙学院官网所体现的基本一致,主要是学生或者学校教职工进行事务操作与办公的模块。比如学生进行选课与成绩查询,学习网上课程内容以及提交课程作业等一系列与校园的学习生活有关的功能都能在校园模块中进行,而学校教职工则可以对校园模块进行一个基本管理的操作,比如发表课题,作业,批改作业,发布成绩或者学校组织的一些重大学术活动。

     

    三、校园模块的体系环境结构图

     

    四、系统原型图

    五、功能模块之成绩查询功能

    代码地址:https://github.com/123wangdong123/grade

     

    转载于:https://www.cnblogs.com/dongdongwang/p/8793387.html

    展开全文
  • 基于css3制作的微信社交app网页版,在线问答聊天,网页聊天界面布局,聊天模块设计代码。这是一款非常实用的网页聊天工具。
  • app载入界面相关功能实现 模块功能 1.设置页面布局 2.初始化视频播放 //控制是否跳到主界面 private boolean isjump = false; private VideoView videoView; private void startSplash() { //播放地址 Uri ...

    app载入界面相关功能实现

    模块功能

    1.设置页面布局

    在这里插入图片描述

    2.初始化视频播放

     //控制是否跳到主界面
        private boolean isjump = false;
        private VideoView videoView;
        private void startSplash() {
            //播放地址
            Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video);
            //初始化vdeoView对象
             videoView = findViewById(R.id.vv_splash);
            //设置视频播放地址
            videoView.setVideoURI(uri);
            //开始播放
            videoView.start();
            videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    if(!isjump){
                        //关闭当前界面
                        finish();
                        startActivity(new Intent(SplashActivity.this,MainActivity.class));
    
                    }
                }
            });
    
        }
    

    3.跳过载入页面功能

    private void listenJumpBtn() {
            //初始化Button对象
            Button jump = findViewById(R.id.bt_jump);
            //绑定按钮点击事件
            jump.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    isjump = true;
                    //关闭当前界面
                    finish();
                    //跳转到主界面
                    startActivity(new Intent(SplashActivity.this,MainActivity.class));
                }
            });
        }
    

    4.设置屏幕大小覆盖全屏

        private void setVideoSize() {
            //获取屏幕尺寸对象
            DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
            //创建布局参数
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(displayMetrics.widthPixels,displayMetrics.heightPixels);
            //设置给videoview
            videoView.setLayoutParams(params);
            //低版本模拟器上添加
            params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
            params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
            params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
            params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
        }
    

    总Acrivity代码

    import android.content.Intent;
    import android.media.MediaPlayer;
    import android.net.Uri;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.DisplayMetrics;
    import android.view.View;
    import android.widget.Button;
    import android.widget.RelativeLayout;
    import android.widget.VideoView;
    
    import com.example.administrator.zhjrtt.R;
    
    public class SplashActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_splash);
            //1.设置页面布局
            //2.初始化视频播放
            startSplash();
            //3.跳转功能
            listenJumpBtn();
            //4.将画面设置成屏幕大小
            setVideoSize();
        }
    
        private void setVideoSize() {
            //获取屏幕尺寸对象
            DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
            //创建布局参数
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(displayMetrics.widthPixels,displayMetrics.heightPixels);
            //设置给videoview
            videoView.setLayoutParams(params);
            //低版本模拟器上添加
            params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
            params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
            params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
            params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
        }
    
        private void listenJumpBtn() {
            //初始化Button对象
            Button jump = findViewById(R.id.bt_jump);
            //绑定按钮点击事件
            jump.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    isjump = true;
                    //关闭当前界面
                    finish();
                    //跳转到主界面
                    startActivity(new Intent(SplashActivity.this,MainActivity.class));
                }
            });
        }
    
        //控制是否跳到主界面
        private boolean isjump = false;
        private VideoView videoView;
        private void startSplash() {
            //播放地址
            Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video);
            //初始化vdeoView对象
             videoView = findViewById(R.id.vv_splash);
            //设置视频播放地址
            videoView.setVideoURI(uri);
            //开始播放
            videoView.start();
            videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    if(!isjump){
                        //关闭当前界面
                        finish();
                        startActivity(new Intent(SplashActivity.this,MainActivity.class));
    
                    }
                }
            });
    
        }
    }
    
    

    结果展示

    在这里插入图片描述

    展开全文
  • 社交app网页版聊天界面设计代码 基于css3制作的微信社交app网页版,在线问答聊天,网页聊天界面布局,聊天模块设计代码。这是一款非常实用的网页聊天工具。 演示地址 下载地址

    社交app网页版聊天界面设计代码

    社交app网页版聊天界面设计代码

    基于css3制作的微信社交app网页版,在线问答聊天,网页聊天界面布局,聊天模块设计代码。这是一款非常实用的网页聊天工具。

    演示地址

    下载地址

    展开全文
  • 模块二 继承View类实现自定义View组件 上述代码的onDraw方法即重写了View基类中的方法该方法负责在组件的指定位置绘制出一个红色小球除此之外还重写了onTouchEvent方法当用户用手或鼠标拖动该小球时将会触发这个事件...
  • 在上篇文章《Android学习系列(22)--App主界面比较》中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局。今天我们就这个经典布局,用代码具体的实现它。 1.预览图先看下最终的界面设计图: 上面顶部...

    在上篇文章《Android学习系列(22)--App主界面比较》中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局。
    今天我们就这个经典布局,用代码具体的实现它。

    1.预览图
    先看下最终的界面设计图:

      

    上面顶部是一个9patch背景图片+标题文字;
    下面底部是5个tab标签,表示应用的5大模块。
    中间内容部分则是各个模块的具体内容,可以再分类,或者直接显示内容。 

    2.准备素材
    按照上篇文章的界面,我们需要事先提供两大方面的素材:顶部+底部。
    顶部的素材非常简单,最重要的是背景(9patch的图片):


    底部的素材稍微多一点:
    (1).每个tab的背景都需要正常和选中两种,一共10张图片;
    (2).每个tab之间有一张分割线,1张图片;
    (3).为了自适应屏幕宽度,并保持图形不变形,必须tab背景和下面botton这个背景色一致,所以需要1张同背景的背景图片。
    如下:
    (1). 

             

    (2).

    (3).

    在这里呢,我再三考量,决定还是把图片和文字放在一起,这样一能大大降低代码的复杂性,而且能保证漂亮的样式,我们通过Photoshop来控制,灵活性大大增强。
    以上是我在网上随便找了几张照片,稍微处理了一下,作为下面我们实现的素材。

    3.实现原理
    这里,我采用了getDecorView方法,发现这种方法布局和代码比较简洁,看上去性能也不错(待查)。
    用核心代码来说明一下原理:

            //mainTabContainer是一个空布局,做为每个tab的容器
            //activity是每个tab对应的activity
            //getDecorView是对应的activity的视图,添加到tab容器中,就能实现切换activity的效果了
            mainTabContainer.removeAllViews();
            mainTabIntent = new Intent(this,activity);
            mainTabContainer.addView(localActivityManager.startActivity(id, mainTabIntent).getDecorView());
    

      通过切换不同的activity的decorView,实现tab的视图切换。

    4.基本框架
    布局界面思路非常清晰,顶部+底部+中间tab内容
    我采用相对布局(相对于线性布局,我经常选择帧布局和相对布局,我更喜欢这两个小巧的布局):

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <LinearLayout android:id="@+id/main_tab_banner"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="10dip"
            android:orientation="horizontal"
            android:gravity="center"
            android:background="@drawable/main_banner_bg"
            android:layout_alignParentTop="true">
            <!-- 标题 -->
        </LinearLayout>
        <LinearLayout android:id="@+id/main_tab"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
            android:background="@drawable/tab_bg"
            android:layout_alignParentBottom="true">
            <!-- 内容 -->
        </LinearLayout>
        <LinearLayout android:id="@+id/main_tab_container"
            android:layout_above="@id/main_tab"
            android:layout_below="@id/main_tab_banner"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="#FFFFE0">
        </LinearLayout>
    </RelativeLayout>
    

    看起来很复杂的东西,分解一下就简单的多了。
    在标题处,加上一个TextView,做为标题显示。
    在内容处,我们需要填充5个Tab背景和1个分割线,请参考《Android学习系列(5)--App布局初探之简单模型》 中的模型四,使用了layout_weight的属性,平均分割了5个tab.
    最终我们的布局文件如下:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <LinearLayout android:id="@+id/main_tab_banner"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="10dip"
            android:orientation="horizontal"
            android:gravity="center"
            android:background="@drawable/main_banner_bg"
            android:layout_alignParentTop="true">
            <TextView android:id="@+id/main_tab_banner_title"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="欣赏美花"
                android:textSize="20dip"
                android:textColor="#000000"/>
        </LinearLayout>
        <LinearLayout android:id="@+id/main_tab"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
            android:background="@drawable/tab_bg"
            android:layout_alignParentBottom="true">
            <ImageView android:id="@+id/appreciate_tab_btn"
                android:layout_weight="1"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:gravity="center_horizontal|bottom"
                android:src="@drawable/appreciate_press"/>
            <ImageView android:gravity="center"
                android:layout_gravity="center_vertical"
                android:layout_width="5dip"
                android:layout_height="wrap_content"
                android:src="@drawable/tab_split"/>
            <ImageView android:id="@+id/discuss_tab_btn"
                android:layout_weight="1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|bottom"
                android:textSize="16dip"
                android:src="@drawable/discuss_normal"
                android:textColor="#000000"/>
            <ImageView android:gravity="center"
                android:layout_gravity="center_vertical"
                android:layout_width="5dip"
                android:layout_height="wrap_content"
                android:src="@drawable/tab_split"/>
            <ImageView android:id="@+id/identification_tab_btn"
                android:layout_weight="1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|bottom"
                android:textSize="16dip"
                android:src="@drawable/identification_normal"
                android:textColor="#000000"/>
            <ImageView android:gravity="center"
                android:layout_gravity="center_vertical"
                android:layout_width="5dip"
                android:layout_height="wrap_content"
                android:src="@drawable/tab_split"/>
            <ImageView android:id="@+id/favorite_tab_btn"
                android:layout_weight="1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|bottom"
                android:textSize="16dip"
                android:textColor="#000000"
                android:src="@drawable/favorite_normal"/>
            <ImageView android:gravity="center"
                android:layout_gravity="center_vertical"
                android:layout_width="5dip"
                android:layout_height="wrap_content"
                android:src="@drawable/tab_split"/>
            <ImageView android:id="@+id/setting_tab_btn"
                android:layout_weight="1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|bottom"
                android:textSize="16dip"
                android:src="@drawable/setting_normal"
                android:textColor="#000000"/>
        </LinearLayout>
        <LinearLayout android:id="@+id/main_tab_container"
            android:layout_above="@id/main_tab"
            android:layout_below="@id/main_tab_banner"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="#FFFFE0">
        </LinearLayout>
    </RelativeLayout>
    

    其中的main_tab_container是容器布局,到时候动态存放切换的activity的视图。
    这时候,效果图如下:


    中间的内容为空,tab点击也没有任何效果,我们继续实现。
    这就是布局文件main_tab_frame.xml. 

    5.事件效果
    现在我们把点击效果,切换标题,这些效果关联起来。
    选择不同的tab,显示不同的标题,同时切换不同的activity.
    以点击评花的主要代码为例子:

            //评花
            discussImageView.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    //标题
                    mainTabTitleTextView.setText("评花论花");
                    //切换内容
                    setContainerView("discuss", DiscussTabActivity.class);
                    //切换tab页背景                   
                    appreciateImageView.setImageResource(R.drawable.appreciate_normal);
                    discussImageView.setImageResource(R.drawable.discuss_press);
                    identificationImageView.setImageResource(R.drawable.identification_normal);
                    favoriteImageView.setImageResource(R.drawable.favorite_normal);
                    settingImageView.setImageResource(R.drawable.setting_normal);
                }
            });
            //切换activity
            public void setContainerView(String id,Class<?> activity){
                mainTabContainer.removeAllViews();
                mainTabIntent = new Intent(this,activity);
                mainTabContainer.addView(localActivityManager.startActivity(id, mainTabIntent).getDecorView());
            }
    

    我们继承ActivityGroup这个类,实现这个完整的类MainTabFrame.java:

    public class MainTabFrame extends ActivityGroup {
        
        //Tab Activity Layout
        private LocalActivityManager localActivityManager = null;
        private LinearLayout mainTabContainer = null;
        private Intent mainTabIntent = null;
    
        //Tab banner title
        private TextView mainTabTitleTextView = null; 
        //Tab ImageView
        private ImageView appreciateImageView = null;
        private ImageView discussImageView = null;
        private ImageView identificationImageView = null;
        private ImageView favoriteImageView = null;
        private ImageView settingImageView = null;
        
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main_tab_frame);
            
            mainTabContainer = (LinearLayout)findViewById(R.id.main_tab_container);
            localActivityManager = getLocalActivityManager();
            setContainerView("appreciate", AppreciateTabActivity.class);
            
            initTab();
            
        }
    
        
        /**
         * 初始化Tab项
         */
        private void initTab() {
            mainTabTitleTextView = (TextView)findViewById(R.id.main_tab_banner_title);
            appreciateImageView = (ImageView)findViewById(R.id.appreciate_tab_btn);
            discussImageView = (ImageView)findViewById(R.id.discuss_tab_btn);
            identificationImageView = (ImageView)findViewById(R.id.identification_tab_btn);
            favoriteImageView = (ImageView)findViewById(R.id.favorite_tab_btn);
            settingImageView = (ImageView)findViewById(R.id.setting_tab_btn);
            
            //赏花
            appreciateImageView.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mainTabTitleTextView.setText("欣赏美花");
                    setContainerView("appreciate", AppreciateTabActivity.class);
                    appreciateImageView.setImageResource(R.drawable.appreciate_press);
                    discussImageView.setImageResource(R.drawable.discuss_normal);
                    identificationImageView.setImageResource(R.drawable.identification_normal);
                    favoriteImageView.setImageResource(R.drawable.favorite_normal);
                    settingImageView.setImageResource(R.drawable.setting_normal);
                }
            });
            
            //评花
            discussImageView.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mainTabTitleTextView.setText("评花论花");
                    setContainerView("discuss", DiscussTabActivity.class);
                    appreciateImageView.setImageResource(R.drawable.appreciate_normal);
                    discussImageView.setImageResource(R.drawable.discuss_press);
                    identificationImageView.setImageResource(R.drawable.identification_normal);
                    favoriteImageView.setImageResource(R.drawable.favorite_normal);
                    settingImageView.setImageResource(R.drawable.setting_normal);
                }
            });
            
            //识花
            identificationImageView.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mainTabTitleTextView.setText("亮眼识花");
                    setContainerView("identification", IdentificationTabActivity.class);
                    appreciateImageView.setImageResource(R.drawable.appreciate_normal);
                    discussImageView.setImageResource(R.drawable.discuss_normal);
                    identificationImageView.setImageResource(R.drawable.identification_press);
                    favoriteImageView.setImageResource(R.drawable.favorite_normal);
                    settingImageView.setImageResource(R.drawable.setting_normal);
                }
            });
            
            //收藏
            favoriteImageView.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mainTabTitleTextView.setText("我的收藏");
                    setContainerView("favorite", FavoriteTabActivity.class);
                    appreciateImageView.setImageResource(R.drawable.appreciate_normal);
                    discussImageView.setImageResource(R.drawable.discuss_normal);
                    identificationImageView.setImageResource(R.drawable.identification_normal);
                    favoriteImageView.setImageResource(R.drawable.favorite_press);
                    settingImageView.setImageResource(R.drawable.setting_normal);
                }
            });
            
            //设置
            settingImageView.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mainTabTitleTextView.setText("定义设置");
                    setContainerView("setting", SettingTabActivity.class);
                    appreciateImageView.setImageResource(R.drawable.appreciate_normal);
                    discussImageView.setImageResource(R.drawable.discuss_normal);
                    identificationImageView.setImageResource(R.drawable.identification_normal);
                    favoriteImageView.setImageResource(R.drawable.favorite_normal);
                    settingImageView.setImageResource(R.drawable.setting_press);
                }
            });
        }
        
        public void setContainerView(String id,Class<?> activity){
            mainTabContainer.removeAllViews();
            mainTabIntent = new Intent(this,activity);
            mainTabContainer.addView(localActivityManager.startActivity(id, mainTabIntent).getDecorView());
        }
    }
    

      具体的每个activity怎么显示的,再通过AppreciateTabActivity,DiscussTabActivity,IdentificationTabActivity,FavoriteTabActivity,SettingTabActivity这些独自实现,不再累述。

    6.扩展建议
    这里补充两点:
    (1).标题栏在上述示例中,我是放在MainTabFrame,这样做的好处是,统一了,方便了;这样做的缺点是,如果每个activity的标题栏是不同的按钮,不同的操作,会有些膨胀。所以,标题栏放在主Acvtivity和子Activity中,考虑一下即可。
    (2).tab的切换效果,我做的非常简单,具体的图片阴影,凹凸,文字色彩区分都没有去做(本人对Photoshop实在不熟),美化方面还可以大大改进。

    7.小结 
    通过实现这么个简单的主界面框架,能使我们快速的开始我们相应的感兴趣项目,提供了一种大众化得参考,是android学习者必备基础。 
    这种东西的积累和分析也是能提高我们感觉应用的审美感。 

    转载于:https://www.cnblogs.com/qianxudetianxia/archive/2011/09/03/2155875.html

    展开全文
  • 在上篇文章《Android学习系列(22)--App主界面比较》中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局。 今天我们就这个经典布局,用代码具体的实现它。 1.预览图 先看下最终的界面设计图:   上面...
  • 最近在做一款社交类的应用app“金脉+”(欢迎诸位下载使用,点评),社交类的应用难免都会有个人主页的介绍展示界面,本应用经过产品部和设计部的最终确定如下界面: 实现功能及效果:导航栏根据...
  • 以及基于Git、PowerApp、混合现实、AR、MR技术,正是:一日千里,始于基石。 这都在全新的Zoomla!逐浪CMS2 x3.9.3中得到了淋漓尽致的体现,作为成熟的CMS软件厂商,我们从不只为标新立异、哗众取宠,而是既关注全新...
  • 效果图: 第二个图片包括界面布局等都是抄的,都不好意思贴出来的,侵联删,附上原文地址。 个人信息为当前登录用户的信息,包括旅行目的地,旅行类型,出行天数和花费等;我的出行为记录用户曾经去过的地方,比...
  • 教育系统APP(二)

    千次阅读 2020-01-07 09:06:45
    当我们面临制作登录和注册功能的实现时,我们需要先设计登录界面布局和注册界面布局,做到有完整的思路时才开始实现其功能效果会更好。 我们需要做个标题栏,登陆界面,实现登陆界面的功能代码块,注册界面,...
  • 本章节主要讲解企业站项目界面的制作,主要包括以下页面:首页、产品列表和产品详情、案例列表和案例详情、资讯列表和咨询详情、关于我们、留言反馈页面。 9.1 企业站首页 企业站项目首页主要包括下面几个模块:...
  • 今天我们要简单做一个通过Picker View控件的选择,然后在另一个界面显示图片的App。主要模块由两部分,即Picker View控件的使用,以及两个界面间的数据传递。 (1)在第一个界面中拖入一个Picker ...界面布局如下: 。
  • Android 布局优化

    2018-12-06 14:49:00
    include标签常用于将布局中的公共部分提取出来供其他layout共用,以实现布局模块化,这在布局编写方便提供了大大的便利。例如我们在进行App开发时基本每个页面都会有标题栏,在不使用include的情况下你在每个界面都...
  • 跳板式导航的要点在于利用布局凸显重要模块,跳板式一般搭配选项卡式,界面简单、清晰。以携程App为例。
  • App测试总结

    2020-06-09 18:33:20
    用户界面,包括菜单、对话框、输入框的布局,是否与设计图一致,在不同尺寸屏幕上的显示 2)易用性,是否友好,是否符合用户习惯 2.功能测试 1)评审需求,根据需求文档绘制脑图,多方面考虑,分析模块之间的联系,...
  • APICloud开发App总结(一)

    2015-10-06 17:01:00
    apiCloud app 开发是最近一两年刚刚兴起的一种混合开发方式。常用的模块以原生方式开发好,然后用js...这样,整个app开发的重心移到了界面的设计与布局上,即主要用web前端技术设计实现app界面。反而是用js调用...
  • 这种操作也叫做窗口布局。 下面就来详细演示这个容器的使用。 导入tkinter模块,命名为tk。 import tkinter as tk 继承Frame类。 class myApp(tk.Frame): def __init__(self,title = 'My App'): #调用基类...
  • Layouts Widgets是Kivy对界面布置进行控制的一些模块方法,相互组合可以快速实现页面布局。 一、AnchorLayout 锚点布局 from kivy.app import App from kivy.uix.button import Button from kivy.uix.anchorlayout ...
  • Android APP耗电优化

    2018-10-15 11:17:41
    可能造成耗电的一些原因 网络请求耗电,而且手机...高频的刷新UI界面,刷新UI界面其实就是进行layout的绘制,如果一个Activity的布局嵌套太多层,那么每一层layout都会刷新一次,例如动画等等这些都会造成耗电 数...
  • 智能交通移动app类图

    2018-07-17 15:15:39
    1)、利用给定的资源,实现该界面原型的布局,参阅环境指标界面原型图。 2)、实现空气温度、空气湿度、pm2.5、CO2 、光照、道路状态(默认1号编号道路)实时数据显示功能。 注:数据实时刷新周期为 5秒。 3)、实现...
  • 安卓校友录app本课题的开发...本课题的系统界面设计采用相对布局(RelativeLayout)、线性布局(LinearLayout)、网络视图(GridView)、列表视图(ListView)等混合嵌套布局的方法,以达到用户界面的美观易用。 本课
  • android —— 简易仿ZAKER手机阅读APP

    千次阅读 2016-02-05 17:13:15
     我手机上自带了一个ZAKER的新闻阅读APP,用起来感觉它的界面很简洁,特别是阅读的界面与众不同,很有新意。于是就 自己模仿着做了一遍大体的框架和模块,也添加了一点自己的布局进去。仿照了它大体的模块布局:...
  • 最近接触到了一些比较有意思的app设计思想。总的来说是为了,让app更小,更方便用户模块...然后,猜测可能是对相关的界面做封装,然后,在通过Json的解析,实现了相对自由化的主界面布局,以及无需更新就能设置自己的a

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 166
精华内容 66
关键字:

app界面布局模块