(Android第一行代码)UI开发

案头见蠹鱼,犹胜凡俦侣。这篇文章主要讲述(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="https://www.songbingjia.com/android/@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) {   
                      }     
【(Android第一行代码)UI开发】                        });      
      //最后调用 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;  
                                  } 
                          }
            }
       
























    推荐阅读