Android Studio的应用资源引用

Android Studio的应用资源

当我们经常编写很多页面时,会发现有很多重复的字吖,颜色吖,样式吖,一直在重复使用,如果我们每写一个页面或者每写一个地方就重新设置一下,这样子很麻烦,而且也不利于后期维护。因为如果发现一样的地方错了,那么每个写一样的地方都要改一遍,而如果把这些一样的样式吖字吖放在一个资源里面,每次使用只需要调用资源,那么修改的时候也只需要改资源里面的就好了。

下面这个截图红圈圈圈起来的是资源的放置地方。

在这里插入图片描述

设置常用的字符串(字)

strings.xml:文件是存放字符串类型的文件。

中文汉字也是字符串类型,所以如下图这样先写个string标签,给标签命个名,这是给布局页面调用的名字,然后把自己要设置的字符串(字)写在标签里面就好了。

然后第一行的string是APP应用程序的名字。可以自由修改

在这里插入图片描述

然后是在布局页面调用。

语法是“@string/名字(name)",这里这个名字就是自己设置在strings.xml文件里面的那个name。

布局页面xml文件代码:

注意text和hint属性引用资源的办法

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="君不见黄河之水天上来,奔流到海不复回"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.496"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.116" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="40dp"
        android:layout_marginLeft="40dp"
        android:layout_marginTop="28dp"
        android:text="@string/usename"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="84dp"
        android:text="@string/usepass"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.152"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <EditText
        android:id="@+id/edit"
        android:layout_width="230dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:hint="@string/namehint"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.415"
        app:layout_constraintStart_toEndOf="@+id/textView4"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <EditText
        android:id="@+id/edit2"
        android:layout_width="230dp"
        android:layout_height="wrap_content"
        android:hint="@string/passhint"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.402"
        app:layout_constraintStart_toEndOf="@+id/textView5"
        app:layout_constraintTop_toBottomOf="@+id/edit" />


</androidx.constraintlayout.widget.ConstraintLayout>

效果图:

在这里插入图片描述

设置公用的尺寸值(sp或者dp)

字体大小sp或者尺寸的的值也可以放置资源文件然后布局页面来调用。

这个sp和dp等尺寸的值也可以放在strings.xml文件里面,然后调用,但是这个会很杂乱,也不利于维护。所以另外建一个资源文件,存放这些dp值。新建的方法:

1、右击values -> New -> XML -> Values XML File

在这里插入图片描述

2、给这个文件一个名称,要看名知意。

建好之后就可以开始设置sp或者dp的值了。

尺寸值对应的标签是,然后把名称添上,对应尺寸值写在两个标签里面,如下图:

在这里插入图片描述

布局页面XML文件:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="君不见黄河之水天上来,奔流到海不复回"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.496"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.116" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="@dimen/textwsize"
        android:layout_height="wrap_content"
        android:textSize="@dimen/texts"
        android:layout_marginStart="40dp"
        android:layout_marginLeft="40dp"
        android:layout_marginTop="28dp"
        android:text="@string/usename"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="@dimen/textwsize"
        android:layout_height="wrap_content"
        android:layout_marginTop="76dp"
        android:text="@string/usepass"
        android:textSize="@dimen/texts"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.152"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <EditText
        android:id="@+id/edit"
        android:layout_width="@dimen/ediwsize"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:hint="@string/namehint"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.415"
        app:layout_constraintStart_toEndOf="@+id/textView4"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <EditText
        android:id="@+id/edit2"
        android:layout_width="@dimen/ediwsize"
        android:layout_height="wrap_content"
        android:hint="@string/passhint"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.402"
        app:layout_constraintStart_toEndOf="@+id/textView5"
        app:layout_constraintTop_toBottomOf="@+id/edit" />


</androidx.constraintlayout.widget.ConstraintLayout>

效果图:

在这里插入图片描述

设置颜色资源

颜色资源存放在colors.xml,

只需在里面设置一下就好了,和其他的设置方式差不多,只是标签名不一样。

colors.xml代码:

上面三个是一开始有的,后面两个是我自己写的。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#6200EE</color>
    <color name="colorPrimaryDark">#3700B3</color>
    <color name="colorAccent">#03DAC5</color>

    <color name="colortext">#010303</color>
    <color name="colortop">#4d4</color>
</resources>

布局文件XML代码:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/colortop"
        android:text="君不见黄河之水天上来,奔流到海不复回"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.496"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.116" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="@dimen/textwsize"
        android:layout_height="wrap_content"
        android:textSize="@dimen/texts"
        android:textColor="@color/colortext"
        android:layout_marginStart="40dp"
        android:layout_marginLeft="40dp"
        android:layout_marginTop="28dp"
        android:text="@string/usename"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="@dimen/textwsize"
        android:layout_height="wrap_content"
        android:layout_marginTop="76dp"
        android:text="@string/usepass"
        android:textSize="@dimen/texts"
        android:textColor="@color/colortext"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.152"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <EditText
        android:id="@+id/edit"
        android:layout_width="@dimen/ediwsize"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:hint="@string/namehint"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.415"
        app:layout_constraintStart_toEndOf="@+id/textView4"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <EditText
        android:id="@+id/edit2"
        android:layout_width="@dimen/ediwsize"
        android:layout_height="wrap_content"
        android:hint="@string/passhint"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.402"
        app:layout_constraintStart_toEndOf="@+id/textView5"
        app:layout_constraintTop_toBottomOf="@+id/edit" />


</androidx.constraintlayout.widget.ConstraintLayout>

效果图:

在这里插入图片描述

样式文件操作

格式如下:

<resources>

    <style name="样式文件名" parent="父样式表">
          <item name="定义的属性">属性值</item>
    </style>

</resources>

要使用已有的样式,在布局文件XML下添加属性如下:

style="@style/样式文件名"

在样式文件里面可以直接设置具体的属性值,也可以引用别的资源的属性值。

样式代码:

<resources>

    <style name="mystyle">
        <item name="android:text">君不见黄河之水天上来,奔流到海不复回</item>
        <item name="android:textColor">@color/colorPrimary</item>
        <item name="android:textSize">@dimen/toptext</item>
    </style>

</resources>

布局文件XML代码:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        style="@style/mystyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.496"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.116" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="@dimen/textwsize"
        android:layout_height="wrap_content"
        android:textSize="@dimen/texts"
        android:textColor="@color/colortext"
        android:layout_marginStart="40dp"
        android:layout_marginLeft="40dp"
        android:layout_marginTop="28dp"
        android:text="@string/usename"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="@dimen/textwsize"
        android:layout_height="wrap_content"
        android:layout_marginTop="76dp"
        android:text="@string/usepass"
        android:textSize="@dimen/texts"
        android:textColor="@color/colortext"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.152"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <EditText
        android:id="@+id/edit"
        android:layout_width="@dimen/ediwsize"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:hint="@string/namehint"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.415"
        app:layout_constraintStart_toEndOf="@+id/textView4"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <EditText
        android:id="@+id/edit2"
        android:layout_width="@dimen/ediwsize"
        android:layout_height="wrap_content"
        android:hint="@string/passhint"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.402"
        app:layout_constraintStart_toEndOf="@+id/textView5"
        app:layout_constraintTop_toBottomOf="@+id/edit" />


</androidx.constraintlayout.widget.ConstraintLayout>

效果:

在这里插入图片描述

图片资源引用

可以直接将图片拖入 “res”目录下的”drawable"或者"mipmap"目录下。

如下:之后点击确定

在这里插入图片描述

之后到布局文件XML下引用:

"@drawable/图片名"

我给整个页面加个背景图片,就写加上去的这个代码了。其他的和上面的都一样。

android:background="@drawable/img2"

然后看看效果图:

图片有点小变形
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/leilei__66/article/details/109113531