Android AS创建自定义布局案例详解

先创建一个title.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/ic_launcher_foreground"
    >
<!--background可以放图片,放了合适的图片比较好看,这里我比较随意点,没找到资源-->
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/title_Back"
        android:layout_margin="5dp"
        android:background="@drawable/ic_launcher_background"
        android:text="@string/Back"
        android:textColor="#fff"/>

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/title_Text"
        android:layout_weight="1"
        android:gravity="center"
        android:text="This is a title"
        android:textColor="#F44336"
        android:textSize="24sp"
        tools:ignore="HardcodedText"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/title_edit"
        android:layout_margin="5dp"
        android:background="@drawable/ic_launcher_background"
        android:text="EDIT"
        android:textColor="#fff"
        tools:ignore="HardcodedText" />

这里是为了自定义布局,这就像C++中创建类,要用的时候直接调用就行了。
下面展示如何调用

activity_main.xml:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
	<!--酷似C++调用库-->
    <include layout="@layout/title"/>

</LinearLayout>

最后记得将标题行隐藏起来,这样才能模拟iphone的标题栏

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ActionBar actionBar=getSupportActionBar();
        if(actionBar!=null)
            actionBar.hide();//将标题栏隐藏起来

    }
}

结果:

到此这篇关于Android AS创建自定义布局案例详解的文章就介绍到这了,更多相关Android AS创建自定义布局内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决java.lang.NoClassDefFoundError: android.support.v4.animation.AnimatorCompatHelper问题

    在开发过程中,有的时候引入了多个三方库.在调用的时候会出现版本对应不上的原因.就会出现如标题的异常.解决的办法就是在你的build.gradle里面加入如下代码块: configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.supp

  • Android notifyDataSetChanged() 动态更新ListView案例详解

    有时候我们需要修改已经生成的列表,添加或者修改数据,notifyDataSetChanged()可以在修改适配器绑定的数组后,不用重新刷新Activity,通知Activity更新ListView.今天的例子就是通过Handler AsyncTask两种方式来动态更新ListView. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://sc

  • Android实现快速滚动FastScrollView效果

    先看效果图: public class FastScrollView extends ScrollView { private Rect mBarRect = new Rect(); private int mScrollExWidth; private int mScrollExHeight; private boolean mScrollStart; private int dx, dy; private int mRightPadding; public FastScrollView(Co

  • 在Android项目中使用AspectJ的详细攻詻

    AOP 全称"Aspect Oriented Programming",面向切面编程,由于面向对象的思想要求高内聚,低耦合的风格,使模块代码间的可见性变差,对于埋点,日志输出等需求,就会变的十分复杂,如果手动编写代码,入侵性很大,不利于扩展,AOP应运而生. AspectJ AspectJ实际上是对AOP编程的实践,目前还有很多的AOP实现,如ASMDex,但笔者选用的是AspectJ. 使用场景 当我们需要在某个方法运行前和运行后做一些处理时,便可使用AOP技术.具体有: 统计埋点

  • 捕获与解析Android NativeCrash

    目录 一.NE 简介 1.1.so 组成 1.2.查看 so 状态 1.3.获取 strip 和未被 strip 的 so 二.NE 捕获与解析 2.1.logcat捕获 2.2.通过DropBox日志解析--适用于系统应用 2.3.通过BreakPad捕获解析--适用于所有应用 2.3.1.BreakPad的实现功能 2.3.2.BreakPad的捕获原理 2.3.3.解析dump文件 2.3.4.获取崩溃堆栈 三.so符号表的提取 3.1.提取 so 的符号表 3.2.符号表分析 3.2.1

  • AndroidStudio报错Emulator:PANIC:Cannot find AVD system path. Please define ANDROID_SDK_ROOT(解决方案)

    Android Studio 运行后出现了下面的错误 Emulator: Process finished with exit code 1 Emulator: PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT 仿真器:进程结束退出代码1 模拟器:恐慌:找不到AVD系统路径.请定义ANDROID_SDK_ROOT 解决办法如下: 1.先把下载的AVD全部删除 这样打开 这样点,把这里的全部删除了 2.配置电脑环境

  • Android AS创建自定义布局案例详解

    先创建一个title.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" andr

  • android尺子的自定义view——RulerView详解

    项目中用到自定义尺子的样式: 原代码在github上找的,地址:https://github.com/QQabby/HorizontalRuler 原效果为 因为跟自己要使用的view稍有不同 所以做了一些修改,修改的注释都放在代码中了,特此记录一下. 首先是一个自定义View: public class RuleView extends View { private Paint paint; private Context context; private int maxValue = 500

  • Android Location服务之LocationManager案例详解

    上次介绍了位置服务中的Geocoder,这次就来介绍一下LocationManager.LocationManager系统服务是位置服务的核心组件,它提供了一系列方法来处理与位置相关的问题,包括查询上一个已知位置.注册和注销来自某个LocationProvider的周期性的位置更新.注册和注销接近某个坐标时对一个已定义的Intent的触发等.今天我们就一起探讨一下LocationManager的简单应用. 在进入正题之前,朋友们需要了解与LocationManager相关的两个知识点: prov

  • Android mvvm之LiveData原理案例详解

    1. 生命周期感知 1.1 生命周期感知组件 我们知道,Controller(Activity or Fragment) 都是有生命周期的,但是传统的 Controller 实现方式只负责 Controller 本身的生命周期管理,而与业务层的数据之间并没有实现良好解耦的生命周期事件交换.所以业务层都需要自己主动去感知 Controller 生命周期的变化,并在 Controller 的生存期处理数据的保活,而在消亡时刻解除与 Controller 之间的关系,这种处理方式随着业务规模的扩大往往

  • Android Canvas之drawBitmap方法案例详解

    前面讲了paint,后面会花几篇主要讲讲canvas,并且由于最近项目比较紧,所以近期的文章都会"短小精悍": paint 作为画笔,里面有非常多而强大的设置方法,比如设置颜色过滤器,设置位图渲染.渐变,设置图像的混合模式等等,而canvas呢?里面提供了哪些利器可以为我们所用,一起来看看:           通过上图我们可以看到,canvas 里的方法基本可以分为这么几类: save.restore 等与层的保存和回滚相关的方法: scale.rotate.clipXXX 等对画布

  • Android TextView的TextWatcher使用案例详解

    TextWatcher是一个文本变化监听接口,定义了三个接口,分别是beforeTextChanged,onTextChanged,afterTextCahnged. TextWatcher通常与TextView结合使用,以便在文本变化的不同时机做响应的处理.TextWatcher中三个回调接口都是使用了InputFilter过滤器过滤之后的文字字符作为新的字符对象. 使用方法 mTextView.addTextChangedListener(new TextWatcher(){ @Overri

  • Android使用xml自定义图片实例详解

    Android使用xml自定义图片实例详解 实现效果图: 白色圆角图片 bg_round_rectangle_white.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-

  • Android 使用registerReceiver注册BroadcastReceiver案例详解

    android.context.ContextWrapper.registerReceiver public Intent registerReceiver (BroadcastReceiver receiver, IntentFilter filter) Register a BroadcastReceiver to be run in the main activity thread. The receiver will be called with any broadcast Intent

  • Android动画之TranslateAnimation用法案例详解

    我们在实际的开发过程中,有很多地方需要使用TranslateAnimation,本文是爱站技术频道小编为大家做的简单介绍,下面是详解Android 动画之TranslateAnimation应用的参数说明,希望对你学习这方面知识有帮助! android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 TranslateAnimation 位移动画效果 RotateAnimation 旋转动画效果 本节讲解TranslateAnimati

随机推荐