2020.3.13学习内容以及在Java代码中控制UI界面(桌面台球)

java.view.View类

超类 (button等的父类)

android:id属性
android:id="@+id/user"

android:background属性
android:background="@mi pmap/bg" (放在mi pmap之后才可以调用bg.jpg等)
android:background="#FF6600" 直接使用颜色

android:padding属性
paddingLeft(paddingStart API>17)
padiingTop
paddingRight(paddingEnd)
paddingBottom


ViewGroup类 extends View类 (抽象类)
用它的子类使用
ViewGroup控制其子组件分布时依赖的内部类

1.ViewGroup.LayoutParams类
android:layout_width 布局宽度
android:layout_height 布局高度
设置成具体的??dp 或者 使用常量 FILL_PARENT(指与父容器相同)、
MATCH_PARENT指设置组件的宽高度与父容器相同(SDK>8取代FILL_PARENT)、
WRAP_CONTENT

2.ViewGroup.MarginLayoutParams类
设置外边距
android:layout_marginTop组件到上边的距离(顶边距)
android:layout_marginBottom组件到下边的距离(底边距)
android:layout_marginLeft(android:layout_marginStart)
android:layout_marginRight(android:layout_marginEnd)
Android UI组件的层次结构
在这里插入图片描述

控制UI界面

1.使用XML布局文件控制UI界面(推荐)
2.在Java代码中控制UI界面
3.使用XML和Java代码混合控制UI界面
4.开发自定义的View

1.使用XML布局文件控制UI界面
1.在Android应用的res/layout目录下编写XML布局文件。比如activity_main.xml
2.在Activity中使用以下Java代码显示XML文件中布局的内容。
setContentView(R.layout.activity_main); --> activity_main布局名称

2.在Java代码中控制UI界面
在代码中控制UI界面可以分为三个关键步骤:
1)创建布局管理器
2)创建具体组件,可以是TextView、ImageView、EditText和Button等Android提供的组件,并设置组件的布局和各种属性。
3)将创建的具体组件添加到布局管理器中。
代码如下所示:

package com.example.txst1_javalayout;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FrameLayout frameLayout = new FrameLayout(this);//创建帧布局管理器
        frameLayout.setBackgroundResource(R.mipmap.bg);//设置背景
        setContentView(frameLayout);//设置在activity中显示framelayout
        TextView text1 = new TextView(this);
        text1.setText("开始游戏");//设置显示文字
        text1.setTextSize(TypedValue.COMPLEX_UNIT_SP,18);//设置文字大小,单位为sp(缩放像素)
        text1.setTextColor(Color.rgb(17,85,114));//设置文字颜色
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);//创建保存布局参数的对象 wrap_content:自适应大小
        params.gravity = Gravity.CENTER;//设置居中显示
        text1.setLayoutParams(params);//设置布局参数
        text1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new AlertDialog.Builder(MainActivity.this).setTitle("系统提示")//创建对话框的标题
                        .setMessage("游戏有风险,进入需谨慎,真的要进入吗?")
                        .setPositiveButton("确定",
                                new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        Log.i("桌面台球","进入游戏");//输出消息日志
                                    }
                                }).setNegativeButton("退出",
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Log.i("桌面台球","退出游戏");
                                finish();//结束游戏
                            }
                        }).show();//显示对话框
            }
        });
        frameLayout.addView(text1);//将text1添加到布局管理器中
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

舍其小伙伴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值