zoukankan      html  css  js  c++  java
  • 2018-2019-2 20189203 移动平台应用开发实践第八周学习总结

    第31、32、33、34章

    第31章 ListView

    • (一)、ListView 概念:
      ListView是Android中最重要的组件之一,几乎每个Android应用中都会使用ListView。它以垂直列表的方式列出所需的列表项。
    java.lang.Object
       ↳ android.view.View
        ↳ android.view.ViewGroup
          ↳ android.widget.AdapterView
            ↳ android.widget.AbsListView
              ↳ android.widget.ListView
    
    • (二)、ListView的两个职责:
      • 将数据填充到布局;
      • 处理用户的选择点击等操作。
    • (三)、列表的显示需要三个元素:
      • 1.ListVeiw:用来展示列表的View;
      • 2.适配器: 用来把数据映射到ListView上的中介;
      • 3.数据源: 具体的将被映射的字符串,图片,或者基本组件。
    • (四)、什么是适配器?
      适配器是一个连接数据和AdapterView的桥梁,通过它能有效地实现数据与AdapterView的分离设置,使AdapterView与数据的绑定更加简便,修改更加方便。将数据源的数据适配到ListView中的常用适配器有:ArrayAdapter、SimpleAdapter 和 SimpleCursorAdapter。
    •	ArrayAdapter最为简单,只能展示一行字;
    •	SimpleAdapter有最好的扩充性,可以自定义各种各样的布局,除了文本外,还可以放ImageView(图片)、Button(按钮)、CheckBox(复选框)等等;
    •	SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方便地把数据库的内容以列表的形式展示出来。
    •	但是实际工作中,常用自定义适配器。即继承于BaseAdapter的自定义适配器类。
    
    • (五)、ListView的常用UI属性:
    •	android:divider
    •	android:dividerHeight
    •	android:entries
    •	android:footerDividersEnabled
    •	android:headerDividersEnabled
    

    第32章GridView

    Android 的 GridView 以二维滚动网格(行和列)显示项目,网格项目不一定是预定的,但它们会自动使用 ListAdapter 布局插入。
    一个适配器实际上是UI组件和数据源之间的桥梁,填充数据到UI组件。适配器可以用来提供数据,如:微调,列表视图,网格视图等。
    ListView 和 GridView 是 AdapterView 的子类,它们可以绑定填充到一个适配器,从外部源检索数据,并创建一个视图表示每个数据项。
    原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/android/android_grid_view.html

    这个例子将通过简单的步骤显示如何使用 GridView 创建自己的 Android 应用程序。按照下面的步骤来 创建Android 应用程序 GridView:
    Step 描述
    1 使用Eclipse IDE创建Android应用程序,并将其命名为GridView在包com.yiibai.gridview下。
    2 修改res/layout/activity_main.xml文件的默认内容以包括GridView的内容以及它的属性。
    3 在res/values/strings.xml文件中定义所需的常量。
    4 把几张照片放在res/drawable-hdpi文件夹。这几张相处如下:sample0.jpg, sample1.jpg, sample2.jpg, sample3.jpg, sample4.jpg, sample5.jpg, sample6.jpg 和 sample7.jpg.
    5 在包com.yiibai.helloworld下创建一个新类ImageAdapter扩展BaseAdapter。将用于填充视图,这个类将实现一个适配器的功能。
    6 运行该应用程序启动Android模拟器并验证应用程序所运行的结果。
    以下是内容是主活动文件 src/com.yiibai.gridview/MainActivity.java。这个文件可以包括每个的基本生命周期方法。

    package com.yiibai.gridview;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.GridView;
    
    public class MainActivity extends Activity {
    
       @Override
       protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          
          GridView gridview = (GridView) findViewById(R.id.gridview);
          gridview.setAdapter(new ImageAdapter(this));
       }
    
       @Override
       public boolean onCreateOptionsMenu(Menu menu) {
          getMenuInflater().inflate(R.menu.main, menu);
          return true;
       }
       
    }
    

    下面是 res/layout/activity_main.xml 文件的内容:

    <?xml version="1.0" encoding="utf-8"?>
    <GridView xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/gridview"
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"
       android:columnWidth="90dp"
       android:numColumns="auto_fit"
       android:verticalSpacing="10dp"
       android:horizontalSpacing="10dp"
       android:stretchMode="columnWidth"
       android:gravity="center"
    />
    

    以下是文件 res/values/strings.xml 内容定义两个常量:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
       <string name="app_name">HelloWorld</string>
       <string name="action_settings">Settings</string>
    
    </resources>
    

    以下是 src/com.yiibai.gridview/ImageAdapter.java 文件的内容:

    package com.yiibai.gridview;
    
    import android.content.Context;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.GridView;
    import android.widget.ImageView;
    
    public class ImageAdapter extends BaseAdapter {
       private Context mContext;
    
       // Constructor
       public ImageAdapter(Context c) {
          mContext = c;
       }
    
       public int getCount() {
          return mThumbIds.length;
       }
    
       public Object getItem(int position) {
          return null;
       }
    
       public long getItemId(int position) {
          return 0;
       }
    
       // create a new ImageView for each item referenced by the Adapter
       public View getView(int position, View convertView, ViewGroup parent) {
          ImageView imageView;
          if (convertView == null) {
          imageView = new ImageView(mContext);
          imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
          imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
          imageView.setPadding(8, 8, 8, 8);
          } else {
          imageView = (ImageView) convertView;
          }
    
          imageView.setImageResource(mThumbIds[position]);
          return imageView;
       }
    
       // Keep all Images in array
       public Integer[] mThumbIds = {
          R.drawable.sample_2, R.drawable.sample_3,
          R.drawable.sample_4, R.drawable.sample_5,
          R.drawable.sample_6, R.drawable.sample_7,
          R.drawable.sample_0, R.drawable.sample_1,
          R.drawable.sample_2, R.drawable.sample_3,
          R.drawable.sample_4, R.drawable.sample_5,
          R.drawable.sample_6, R.drawable.sample_7,
          R.drawable.sample_0, R.drawable.sample_1,
          R.drawable.sample_2, R.drawable.sample_3,
          R.drawable.sample_4, R.drawable.sample_5,
          R.drawable.sample_6, R.drawable.sample_7
       };
    }
    

    让我们尝试运行 GridView 应用程序,Eclipse AVD上安装的应用程序,并启动它,如果设置和应用都没有问题,它会显示以下模拟器窗口:
    原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/android/android_grid_view.html
    这个例子将通过简单的步骤显示如何使用 GridView 创建自己的 Android 应用程序。按照下面的步骤来 创建Android 应用程序 GridView:
    Step 描述
    1 使用Eclipse IDE创建Android应用程序,并将其命名为GridView在包com.yiibai.gridview下。
    2 修改res/layout/activity_main.xml文件的默认内容以包括GridView的内容以及它的属性。
    3 在res/values/strings.xml文件中定义所需的常量。
    4 把几张照片放在res/drawable-hdpi文件夹。这几张相处如下:sample0.jpg, sample1.jpg, sample2.jpg, sample3.jpg, sample4.jpg, sample5.jpg, sample6.jpg 和 sample7.jpg.
    5 在包com.yiibai.helloworld下创建一个新类ImageAdapter扩展BaseAdapter。将用于填充视图,这个类将实现一个适配器的功能。
    6 运行该应用程序启动Android模拟器并验证应用程序所运行的结果。
    以下是内容是主活动文件 src/com.yiibai.gridview/MainActivity.java。这个文件可以包括每个的基本生命周期方法。

    package com.yiibai.gridview;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.GridView;
    
    public class MainActivity extends Activity {
    
       @Override
       protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          
          GridView gridview = (GridView) findViewById(R.id.gridview);
          gridview.setAdapter(new ImageAdapter(this));
       }
    
       @Override
       public boolean onCreateOptionsMenu(Menu menu) {
          getMenuInflater().inflate(R.menu.main, menu);
          return true;
       }
       
    }
    

    下面是 res/layout/activity_main.xml 文件的内容:

    <?xml version="1.0" encoding="utf-8"?>
    <GridView xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/gridview"
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"
       android:columnWidth="90dp"
       android:numColumns="auto_fit"
       android:verticalSpacing="10dp"
       android:horizontalSpacing="10dp"
       android:stretchMode="columnWidth"
       android:gravity="center"
    />
    

    以下是文件 res/values/strings.xml 内容定义两个常量:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
       <string name="app_name">HelloWorld</string>
       <string name="action_settings">Settings</string>
    
    </resources>
    

    以下是 src/com.yiibai.gridview/ImageAdapter.java 文件的内容:

    package com.yiibai.gridview;
    
    import android.content.Context;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.GridView;
    import android.widget.ImageView;
    
    public class ImageAdapter extends BaseAdapter {
       private Context mContext;
    
       // Constructor
       public ImageAdapter(Context c) {
          mContext = c;
       }
    
       public int getCount() {
          return mThumbIds.length;
       }
    
       public Object getItem(int position) {
          return null;
       }
    
       public long getItemId(int position) {
          return 0;
       }
    
       // create a new ImageView for each item referenced by the Adapter
       public View getView(int position, View convertView, ViewGroup parent) {
          ImageView imageView;
          if (convertView == null) {
          imageView = new ImageView(mContext);
          imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
          imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
          imageView.setPadding(8, 8, 8, 8);
          } else {
          imageView = (ImageView) convertView;
          }
    
          imageView.setImageResource(mThumbIds[position]);
          return imageView;
       }
    
       // Keep all Images in array
       public Integer[] mThumbIds = {
          R.drawable.sample_2, R.drawable.sample_3,
          R.drawable.sample_4, R.drawable.sample_5,
          R.drawable.sample_6, R.drawable.sample_7,
          R.drawable.sample_0, R.drawable.sample_1,
          R.drawable.sample_2, R.drawable.sample_3,
          R.drawable.sample_4, R.drawable.sample_5,
          R.drawable.sample_6, R.drawable.sample_7,
          R.drawable.sample_0, R.drawable.sample_1,
          R.drawable.sample_2, R.drawable.sample_3,
          R.drawable.sample_4, R.drawable.sample_5,
          R.drawable.sample_6, R.drawable.sample_7
       };
    }
    

    让我们尝试运行 GridView 应用程序,Eclipse AVD上安装的应用程序,并启动它,如果设置和应用都没有问题,它会显示以下模拟器窗口:

    第33章样式和主题

    在android很多地方要对控件的样式(如:ActionBar的样式)和Activity的样式进行设置,对应控件的样式设置是(Style)对Activity的样式设置是(Theme)
    API是这样来解释Style的:
      A style resource defines the format and look for a UI.A style can be applied to an individual View (from within a layout file)
       or to an entire Activity or application (from within the manifest file)
    下面就来说说怎么进行style设置:
    1.在资源文件夹里创建好style.xml和theme.xml
    2.在XML文件中都要添加一个根节点
    3.在根节点里面

  • 相关阅读:
    14 break
    13 for循环
    Python 3.7 将引入 dataclass 装饰器
    工程师如何在面试中脱颖而出
    如何避免 async/await 地狱
    命令行里打 cd 简直是浪费生命
    GitHub 十大 CI 工具
    GitHub CEO:GitHub 十年,感谢有你
    如何在 2 分钟内入睡(二战时期美国飞行员训练法)
    一分钟了解 TCP/IP 模型
  • 原文地址:https://www.cnblogs.com/23du/p/10747449.html
Copyright © 2011-2022 走看看