安卓开发学习9-资源

一 字符串资源

 

 

 

二 颜色资源

颜色值组成

 

表达式组成

 

 透明度可选,其他使用十六进制表示

颜色资源与使用

1、通过color标签自定义颜色的名称和值

2、xml文件中使用

3、Java文件中使用:设置颜色,如下代码是在Java文件中通过getResources().getColor方法获取到R.color.black所对应颜色值

三 尺寸资源

常用尺寸单位

  1. dp
  2. sp

dp

设备独立像素,会根据屏幕的大小进行改变。主要用于设置边距和组件大小的。

sp

可伸缩像素,安卓中推荐的、设置文字大小的单位。他会根据用户字体大小的首选项进行设置文字的大小。例如设置手机的字体是超大。那么同一个程序,在一个屏幕设置文字大小是正常,而另一个设置手机字体是超大的,字体大小是不同的。

尺寸资源文件

使用

1、xml文件内使用

2、Java文件内使用

 

四 布局资源

布局资源文件

指定Activity使用的布局资源文件

setContentView(R.layout.activity_main);

布局资源使用

1、xml中使用其他布局文件,也就是嵌套布局。通过include标签指定嵌套

<include layout="@layout/activity_detail"></include>

五 StateListDrawable资源

解析

定义在xml文件中的drawable对象,能根据不同状态呈现不同的效果。例如实现一个动画:点击一个按钮,按钮变大后再变回原样或者输入框在没有聚焦的时候是橙色的,而设置聚焦后字体颜色是绿色的

drawable资源文件创建

六 数组资源

资源文件创建

三种不同类型的数组

1、尺寸数组
2、整型数组:可以是十进制也就可以是十六进制
3、字符串数组

七 Drawable资源

Drawable资源文件

常用两类drawable资源

9 Patch图片制作

9 Patch图片是可伸缩的标准png图像,通过自定义拉伸区间可以让图片避免失真的情况

9 patcht图片后缀

 新版的Android SDK中tools里边没有画9 patch图片工具,但是在Android Studio更为方便

右键想要生成9 patch图片的原始png图片

drawable和mipmap的区别

主要区别在于存储的文件类型

八 主题资源

默认主题

自定义主题资源

在res/values/themes.xml文件中进行定义

使用style标签包含主题资源,并通过item定义每一部分的资源,一般资源文件定义整个App的资源,item上name是设置配置的属性,就是配置的部分

style的name:主题资源名称
parent:继承父主题
item的name:表示配置属性。windowNoTitle表示无标题,而设置为false,就表示为窗体有标题

<style name="bgTheme" parent="@style/Theme.MingriApplication">
        <item name="windowNoTitle">false</item>
        <item name="android:windowBackground">@color/black</item>
    </style>

资源使用

配置App的主题资源,需要在AndroidManifest.xml文件中
1、xml文件中

 2、Java文件中

复制代码
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTheme(R.style.bgTheme);
        setContentView(R.layout.activity_main);
    }
}
复制代码

 

九 样式资源

应用场景

统一样式设置

 

 

自定义样式与使用

自定义样式

    <style name="title">
        <item name="android:textSize">30sp</item>
        <item name="android:textColor">#06F</item>
    </style>

使用

复制代码
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="乔布斯"
        style="@style/title"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="活着就是为了改变世界,难道还有其他原因吗?"
        style="@style/context"/>
复制代码

样式继承

    <style name="context" parent="title">
        <item name="android:textSize">18sp</item>
    </style>

主题和样式的区别

 

十 菜单资源

常见菜单

 

 

菜单资源文件

菜单资源文件目录

目录需要手动在res目录下创建

创建菜单资源文件

配置资源文件

选项菜单

配置与监控菜单项目

复制代码
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    //第3步:重写onCreateOptionMenu()方法,添加一个选项菜单
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //实例化MenuInflater对象
        MenuInflater menuInflater=new MenuInflater(this);
        //解析菜单资源
        menuInflater.inflate(R.menu.menu_test,menu);
        return super.onCreateOptionsMenu(menu);
    }

    //重写onOptionsItemSelected()方法,指定各个菜单项被选择时,所应做的处理
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()){
            case R.id.settings:
                Intent intent_settings=new Intent(MainActivity.this,Settings.class);
                startActivity(intent_settings);
                break;
            case R.id.regard:
                Intent intent_regard=new Intent(MainActivity.this,Regard.class);
                startActivity(intent_regard);
                break;
        }
        return super.onOptionsItemSelected(item);
    }
}
复制代码

上下文菜单

创建上下文菜单

1、menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/coll" android:title="收藏"></item>
    <item android:id="@+id/upp" android:title="举报"></item>
    <item android:id="@+id/none" android:title="不显示"></item>
</menu>

2、MainActivity.java

复制代码
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView imageView = findViewById(R.id.img);

        imageView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
//              注册
                registerForContextMenu(view);
//              打开
                openContextMenu(view);
//              消化点击事件,也就是事件传递到这里就结束了,不会触发后续的其他行为
                return true;
            }
        });


    }
    
//  创建上下文菜单
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {

        MenuInflater menuInflater = new MenuInflater(MainActivity.this);
        menuInflater.inflate(R.menu.menu, menu);
        super.onCreateContextMenu(menu, v, menuInfo);

//        menu.add(1,1,1,"收藏");  Java代码动态添加    (组id , 本身id , 排序id, 显示文字)
//        menu.add(2,2,2,"举报");
    }

//  监听上下文菜单点击事件
    @Override
    public boolean onContextItemSelected(@NonNull MenuItem item) {

        switch (item.getItemId()){
            case R.id.coll:
                Toast.makeText(MainActivity.this, "选中了收藏", Toast.LENGTH_SHORT).show();
                break;
            case R.id.upp:
                Toast.makeText(MainActivity.this, "选中了举报", Toast.LENGTH_SHORT).show();
                break;
            case R.id.none:
                Toast.makeText(MainActivity.this, "选中了不显示", Toast.LENGTH_SHORT).show();
                break;
        }

        return super.onContextItemSelected(item);
    }
}
复制代码

 

posted @   雨潇潇兮  阅读(70)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示