(Android第一行代码)UI开发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(Android第一行代码)UI开发相关的知识,希望对你有一定的参考价值。

常见控件的使用方法

  1.TextView(主要用于在界面上显示一段文本信息)。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

                android:layout_width="match_parent"  

                android:layout_height="match_parent" 

                android:orientation="vertical" >
 
           <TextView   android:id="@+id/text_view"  

                android:layout_width="match_parent"     

                android:layout_height="wrap_content"      

                   //表示文字在垂直和水平方向都居中对齐

                 android:gravity="center" 

                   //指定文字的大小

                  android:textSize="24sp" 

                   //指定文 字的颜色

                 android:textColor="#00ff00"

                android:text="This is TextView" />
 
    </LinearLayout>


   2. Button(我们可以在 MainActivity中为 Button的点击事件注册一个监听器)

   3.EditText(它允许用户在控件里输入和编 辑内容,并可以在程序中对这些内容进行处理)

          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

                  android:layout_width="match_parent"   

                  android:layout_height="match_parent"   

                  android:orientation="vertical" >   

                   ……     

               <EditText    

                 android:id="@+id/edit_text"    

                 android:layout_width="match_parent"   

                 android:layout_height="wrap_content"   

               // 在输入框里显示一些提示性 的文字

                  android:hint="Type something here"

               />

               // android:maxLines指定了 EditText的最大行数为两行这样当输入的内容超过 两行时,文本就会向上滚动,而 EditText则不会再继续拉伸,

                android:maxLines="2"

      </LinearLayout>

 


 

   4.我们还结合使用 EditText 与 Button 来完成一些功能,通过点击按钮来获取 EditText中输入的内容。

       public class MainActivity extends Activity implements OnClickListener {

                 private Button button;   

                 private EditText editText;
 
                 @textView

           //在oncreat方法中获取textView和Button空间,为Button添加点击事件消息。

         protected void onCreate(Bundle savedInstanceState) { 

              super.onCreate(savedInstanceState); 

              setContentView(R.layout.activity_main); 

             button = (Button) findViewById(R.id.button);

             editText = (EditText) findViewById(R.id.edit_text);

             button.setOnClickListener(this); 

     }

       @Override

  public void onClick(View v) { 

             switch (v.getId()) {

       case R.id.button:

          //获取textView控件中的内容,并用Toast输出。  

             String inputText = editText.getText().toString(); 

             Toast.makeText(MainActivity.this, inputText, Toast.LENGTH_SHORT).show();  

                    break;  

              default:  

                   break;  

            } 

 


5.ImageView(ImageView是用于在界面上展示图片的一个控件)

  •     drawable 文件夹下放一张 ic_launcher.png图片
  •              修改 activity_main.xml

         <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

              android:layout_width="match_parent"   

              android:layout_height="match_parent"  

              android:orientation="vertical" >
               …… 
           <ImageView   

                android:id="@+id/image_view"      

                android:layout_width="wrap_content"   

                android:layout_height="wrap_content"   

           //这里使用 android:src属性给 ImageView指定了一张图片。

               android:src="@drawable/ic_launcher"    

        />

</LinearLayout>

  •     动态地更改 ImageView中的图片我准备了另外一张 图片,jelly_bean.png,将它复制到 res/drawable-hdpi目录下,然后修改 MainActivity的代码,

           public class MainActivity extends Activity implements OnClickListener { 

                   private Button button;  

                   private EditText editText; 

                   private ImageView imageView;
 
                      @Override 

                  protected void onCreate(Bundle savedInstanceState) {  

                  super.onCreate(savedInstanceState);  

                  setContentView(R.layout.activity_main); 

                 button = (Button) findViewById(R.id.button); 

                 editText = (EditText) findViewById(R.id.edit_text);

             //获取imageView控件。

                 imageView  = (ImageView) findViewById(R.id.image_view); 

                 button.setOnClickListener(this); 

         }
 
           @Override 

          public void onClick(View v) { 

                switch (v.getId())

           {  

                 case R.id.button:  

              //在点击事件里将图片动态的改为jelly_bean.png

                 imageView.setImageResource(R.drawable.jelly_bean);  

                          break; 

                         default: 

                           break; 

                    } 

           } 
     }

 


 

  6.ProgressBar进度条(ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据。)

  •        在界面上显示一个进度条

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

                android:layout_width="match_parent" 

                android:layout_height="match_parent" 

                android:orientation="vertical" > 
              …… 
         <ProgressBar     

                android:id="@+id/progress_bar"  

                android:layout_width="match_parent"      

                android:layout_height="wrap_content"    

             />

   </LinearLayout>

 重新运行程序,会看到屏幕中有一个圆形进度条正在旋转

  •    让进度条在数据加载完成时消失

         使用:android:visibility 进行指定让进度条在数据加载完成时消失可选值有三种,visible、invisible 和 gone

                  visible 表示控件是可见的:

                  invisible表示控件不可见,

                  gone则表示控件不仅不可见, 而且不再占用任何屏幕空间

      修改 MainActivity中的代码

          public class MainActivity extends Activity implements OnClickListener { 

               private Button button;  

               private EditText editText;

               private ImageView imageView;

               private ProgressBar progressBar;
      
                 @Override

               protected void onCreate(Bundle savedInstanceState) {

               super.onCreate(savedInstanceState); 

               setContentView(R.layout.activity_main);  

               button = (Button) findViewById(R.id.button);  

               progressBar = (ProgressBar) findViewById(R.id.progress_bar); 

               button.setOnClickListener(this);

        }
 
           @Override 

          public void onClick(View v) {  

             switch (v.getId()) { 

              case R.id.button:   

   //我们通过 getVisibility()方法来判断 ProgressBar 是否可见,如果 可见就将 ProgressBar隐藏掉,如果不可见就将 ProgressBar显示出来

          if (progressBar.getVisibility() == View.GONE) {  

          progressBar.setVisibility(View.VISIBLE); 

           } else {    

         progressBar.setVisibility(View.GONE); 

        } 

          break; 

         default:   

          break;  

        } 

       }
 
    }

  •  给 ProgressBar指定不同的样式,刚刚是圆形进度条,通过 style属性 可以将它指定成水平进度条。

      修改 activity_main.xml中的代码

              <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  

                      android:layout_width="match_parent"  

                      android:layout_height="match_parent"  

                     android:orientation="vertical" >

            ……
 
               <ProgressBar   

                     android:id="@+id/progress_bar"  

                     android:layout_width="match_parent"     

                     android:layout_height="wrap_content" 

             //指定成水平进度条后

                     style="?android:attr/progressBarStyleHorizontal" 

              //给进度条设置一个最大值

                     android:max="100"    

              />

      </LinearLayout>

  • 然 后在 MainActivity代码中动态地更改进度条的进度。

        public class MainActivity extends Activity implements OnClickListener { 

                    …… 

                   @Override 

               public void onClick(View v) {

                     switch (v.getId()) { 

                     case R.id.button: 

                  //每点击一次按钮,我们就获取进度条的当前进度,然后在现有的进度上加 10 作为更新 后的进度。

                     int progress = progressBar.getProgress();  

                     progress = progress + 10;

                     progressBar.setProgress(progress);  

                                     break;  

                                    default:  

                                    break;  

                           }

                   }

           }

 


 

      7.AlertDialog: AlertDialog可以在当前的界面弹出一个对话框

    AlertDialog 都是用于提示一些非常重要的 内容或者警告信息。比如为了防止用户误删重要内容,在删除前弹出一个确认对话框。

    public class MainActivity extends Activity implements OnClickListener {

                     ……

               @Override 

            public void onClick(View v) { 

                  switch (v.getId()) { 

                  case R.id.button:  

              //先通过 AlertDialog.Builder创建出一个 AlertDialog的实例.

                  AlertDialog.Builder dialog = new AlertDialog.Builder

                 (MainActivity.this);  

              //然后为这个对话框设 置标题、内容、可否取消等属性

                 dialog.setTitle("This is Dialog"); 

                dialog.setMessage("Something important."); 

                dialog.setCancelable(false);   

            // 接下来调用 setPositiveButton()方法为对话框设置确定按钮 的点击事件,

                dialog.setPositiveButton("OK", new DialogInterface.

                  OnClickListener() {

                            @Override 

                public void onClick(DialogInterface dialog, int which) {  

                     }  

                });  

           //调用 setNegativeButton()方法设置取消按钮的点击事件。

               dialog.setNegativeButton("Cancel", new DialogInterface.

                 OnClickListener() {

                       @Override   

              public void onClick(DialogInterface dialog, int which) {  

            }   

             });   

   //最后调用 show()方法 将对话框显示出来。

           dialog.show();   

               break; 

                default: 

                break;  

              } 

              }

    }

 


 

8. ProgressDialog : ProgressDialog 会在对话框中显示一个进度条,一般是 用于表示当前操作比较耗时,让用户耐心地等待。

      public class MainActivity extends Activity implements OnClickListener {

                  ……

               @Override

           public void onClick(View v) { 

                switch (v.getId()) { 

                 case R.id.button:  

                 ProgressDialog progressDialog = new ProgressDialog (MainActivity.this);  

                progressDialog.setTitle("This is ProgressDialog");   

                progressDialog.setMessage("Loading...");  

                progressDialog.setCancelable(true);   

                progressDialog.show();   

                          break;  

                        default:  

                          break; 

                   } 

              }

       }

    
























以上是关于(Android第一行代码)UI开发的主要内容,如果未能解决你的问题,请参考以下文章

Android第一行代码-UI

第一行代码第二版(郭霖著)笔记之第三章(UI开发的点点滴滴)

《第一行代码Android(第3版)》— Android 书籍

第一行代码 Android 第二版到货啦

Android第一行代码--Service(四大组件之一)

第一行代码 学习