Andriod Studio(三):控件

可以在这三个文件里预定义好要用的样式、字符串、颜色。在其他地方引用时,代码中用 R. 获得,XML中用 @ 获取。

1. styles.xml

这里定义了基本的样式:

  2. colors.xml 

可以在网上搜集一些颜色加进去

  3. strings.xml

定义一些字符串,比如APP名字,要换名字直接在这里更改就行了。

<string name="app_name">淘你喜欢</string>

  4. 修改应用的图标和名称

AndroidMainfest.xml文件中,找到对应的文件,在被引用的文件里修改。

android:icon="@mipmap/ic_launcher"  指定应用图标
android:label="@string/app_name" 指定应用名称

 

 ------------------------------------控------------------件-----------------------------------

基础:

andriod:id="@+id"  在XML中引用一个id用 @id/id_name;定义一个id用 @+id/id_name。

定义当前元素的长宽:

match_parent:和父元素一样

wrap_content:自适应,刚好包住内容

android:layout_width="200dp"
android:layout_height="100dp"

所有活动都要在AndroidManifest.xml中注册才能生效,Android Studio会自动帮我们注册。

还需要为程序配置主活动,让程序知道先启动谁。配置方法如下图:

添加了新的活动之后,怎么启动?

修改主活动的类(MainActivity.java)中按钮事件:

public void onClick(View v){
    Intent intent = new Intent(MainActivity.this,SecondActivity.class);
    startActivity(intent);
}

Intent是一个意图,第一个参数是上下文,第二个参数是目标活动。

Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。 显式Intent可以用于明确指定启动某个Activity。

即在MainActivity活动基础上打开SecondActivity活动。

intent还可以启动其他程序的活动,比如打开一个网页:

1  @Override
2  public void onClick(View v){
3    Intent intent = new Intent(Intent.ACTION_VIEW);
4    intent.setData(Uri.parse("http://www.baidu.com"));
5    startActivity(intent);
6  }

 

  一、TextView

用途:显示文本信息

效果图:

添加阴影效果:

1 android:shadowColor="@color/red"  阴影颜色
2 android:shadowRadius="5.0"  阴影半径
3 android:shadowDx="10.0"  x轴偏移量
4 android:shadowDy="10.0"  y轴偏移量

 跑马灯效果:

1         android:singleLine="true"  是否单行显示
2         android:ellipsize="marquee"  在哪里省略文本,marquee是可移动的
3         android:focusable="true"  是否可以获取焦点
4         android:focusableInTouchMode="true"  在触摸模式下是否可以聚焦
5         android:marqueeRepeatLimit="marquee_forever"  字幕动画重复次数

二、Button

 1. 在xml里添加Button控件:

  效果如图:

 textAllCaps="false" 这一行是因为,默认是true,会自动把text内容转换成大写。

2. 在Activity中给按钮添加监听

方法一:

  方法二:接口

 

 三、EditText

用途:允许用户输入和编辑内容,如发短信,发微博

1. 提示信息,用户输入时消失 用 android:hint

android:hint="请输入用户名"

  2. 控制输入栏的行数

android:maxLines="1"

3. 获取EditText的输入内容

想要在哪个活动里获取就在哪个活动类里写。

添加 private EditText editText;

在onCreate里根据Id找到这个 editText=(EditText)findViewById(R.id.edit_text);

例如我们想按下按钮就显示输入的信息:

在onClick里添加:

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

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

四、ImageView

用途:展示图片

    <ImageView
        android:id="@+id/image_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher_foreground"/>

效果图:

 点击按钮切换图片:调用setImageResource()方法

Activity里声明图片  private ImageView imageView; 

onCreate里获取图片  imageView=(ImageView) findViewById(R.id.image_view);

onClick里调用方法更换图片:imageView.setImageResource(R.drawable.ic_launcher_background);

 

五、ProgressBar

用途:显示进度条

默认显示的是一个圆圈,也可以更改成进度条样式,max设置进度条最大值。

  设置进度条进度

  

六、AlertDialog

用途:弹出对话框,但会屏蔽其他控件交互,因此用于非常重要的警告信息。

  

   

七、Toast

用途:提示消息,一段时间后自动消失。

Toast是Android系统提供的一种非常好的提醒方式。 在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间。

1)定义一个弹出Toast的触发点

findViewById():返回一个View对象,强制转换成Button对象。

2)注册一个监听器

3)makeText() 创建一个Toast对象

第一个参数 context:上下文,可以传入活动本身;

第二个参数 text:显示的文本内容;

第三个参数 Toast 显示的时长,两个内置常量:Toast.LENGTH_SHORT、Toast.LENGTH_LONG。

  效果图:

  

八、Menu

用途:右上角菜单项

Menu提供了一种机制,可以让界面中的菜单项在默认情况下不显示。 只有当用户主动点击了菜单按钮时,才会弹出里面具体的内容,因此它不会占用任何Activity的空间。

在activity_main.xml中添加了一个按钮。

    <Button
        android:id="@+id/button_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button1"/>

在res文件夹下创建了menu文件夹和main.xml文件

  main.xml中添加如下代码:

1 <?xml version="1.0" encoding="utf-8"?>
2 <menu xmlns:android="http://schemas.android.com/apk/res/android">
3     <item
4         android:id="@+id/add_item"
5         android:title="Add"/>
6     <item
7         android:id="@+id/remove_item"
8         android:title="Remove"/>
9 </menu>

在MainActivity.java中重写onCreate并添加按钮监听

 1     @Override
 2     protected void onCreate(Bundle savedInstanceState) {
 3         super.onCreate(savedInstanceState);
 4         setContentView(R.layout.activity_main);
 5         Button button1 = (Button) findViewById(R.id.button_1);
 6         button1.setOnClickListener(new View.OnClickListener(){
 7             @Override
 8             public void onClick(View v){
 9                 Toast.makeText(MainActivity.this, "You Click Button 1", Toast.LENGTH_SHORT).show();
10             }
11         });
12     }

重写创建选项菜单函数和选项被选择函数

 1     @Override
 2     public boolean onCreateOptionsMenu(Menu menu) {
 3         //得到menuInflater对象,inflate方法创建菜单,参数1 指定要创建菜单的资源文件,参数2 指定添加对象
 4         getMenuInflater().inflate(R.menu.main,menu);
 5         return true;
 6     }
 7 
 8     @Override
 9     public boolean onOptionsItemSelected(@NonNull MenuItem item) {
10         switch(item.getItemId()){ //判断点击的哪一个菜单项
11             case R.id.add_item:
12                 Toast.makeText(this, "You Click Add", Toast.LENGTH_SHORT).show();
13                 break;
14             case R.id.remove_item:
15                 Toast.makeText(this,"You Click Remove",Toast.LENGTH_SHORT).show();
16                 break;
17             default:
18         }
19         return true;
20     }

Tips: 按下Ctrl+o 可以快速选择重写对象

 效果图:

创建一个Return按钮,返回上一层:

修改onClick()里的逻辑就行了,调用finish()。

  

九、RecyclerView  滚动控件

在app下的build.gradle文件里添加依赖:

implementation 'androidx.recyclerview:recyclerview:1.2.1'

 3中的代码再添加一段:

效果图:

 

posted @ 2022-03-08 17:14  番茄玛丽  阅读(537)  评论(0编辑  收藏  举报