• 基础复习——图形定制——图形Drawable——形状图形——九宫格图片——状态列表图形...


    Drawable类型表达了各种各样的图形,包括图片、色块、画板、背景等。

    包含图片在内的图形文件放在res目录的各个drawable目录下,其中drawable目录一般保存描述性的XML文件,而图片文件一般放在具体分辨率的drawable目录下。

    各视图的background属性、ImageView和ImageButton的src属性、TextView和Button四个方向的drawable***系列属性都可以引用图形文件。

    Shape图形又称形状图形,它用来描述常见的几何形状,包括矩形、圆角矩形、圆形、椭圆等等。

    形状图形的定义文件是以shape标签为根节点的XML描述文件,它支持四种类型的形状:

    (1)rectangle:矩形。默认值

    (2)oval:椭圆。此时corners节点会失效

    (3)line:直线。此时必须设置stroke节点,不然会报错

    (4)ring:圆环

    1. <shape xmlns:android="http://schemas.android.com/apk/res/android" >
    2. <solid android:color="#ffdd66" />
    3. <stroke
    4. android:width="1dp"
    5. android:color="#aaaaaa" />
    6. <corners android:radius="10dp" />
    7. shape>

     

     

     

     

     

     

     

    首页布局:

    1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:layout_width="match_parent"
    3. android:layout_height="match_parent"
    4. android:orientation="vertical" >
    5. <Button
    6. android:id="@+id/btn_next"
    7. android:layout_width="match_parent"
    8. android:layout_height="wrap_content"
    9. android:gravity="center"
    10. android:padding="5dp"
    11. android:text="点击跳转下一个activity页面"
    12. android:textColor="@color/black"
    13. android:textSize="17sp" />
    14. LinearLayout>

    首页代码:

    1. package com.example.myapplication;
    2. import android.content.Intent;
    3. import android.os.Bundle;
    4. import android.view.View;
    5. import androidx.appcompat.app.AppCompatActivity;
    6. public class MainActivity extends AppCompatActivity implements View.OnClickListener
    7. {
    8. @Override
    9. protected void onCreate(Bundle savedInstanceState)
    10. {
    11. super.onCreate(savedInstanceState);
    12. setContentView(R.layout.activity_main);
    13. findViewById(R.id.btn_next).setOnClickListener(this);
    14. }
    15. @Override
    16. public void onClick(View v)
    17. {
    18. if (v.getId() == R.id.btn_next)
    19. {
    20. startActivity(new Intent(this, DrawableShapeActivity.class)); //创建一个目标确定的意图
    21. }
    22. }
    23. }

    第二个布局:

    1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:layout_width="match_parent"
    3. android:layout_height="match_parent"
    4. android:orientation="vertical">
    5. <View
    6. android:id="@+id/v_content"
    7. android:layout_width="match_parent"
    8. android:layout_height="200dp"
    9. android:background="@color/teal_200"
    10. android:layout_margin="10dp" />
    11. <LinearLayout
    12. android:layout_width="match_parent"
    13. android:layout_height="wrap_content"
    14. android:orientation="horizontal">
    15. <Button
    16. android:id="@+id/btn_rect"
    17. android:layout_width="0dp"
    18. android:layout_height="wrap_content"
    19. android:layout_weight="1"
    20. android:text="圆角矩形背景"
    21. android:textColor="@color/black"
    22. android:textSize="17sp" />
    23. <Button
    24. android:id="@+id/btn_oval"
    25. android:layout_width="0dp"
    26. android:layout_height="wrap_content"
    27. android:layout_weight="1"
    28. android:text="椭圆背景"
    29. android:textColor="@color/black"
    30. android:textSize="17sp" />
    31. LinearLayout>
    32. LinearLayout>

    第二个代码:

    1. package com.example.myapplication;
    2. import android.os.Bundle;
    3. import android.view.View;
    4. import androidx.appcompat.app.AppCompatActivity;
    5. public class DrawableShapeActivity extends AppCompatActivity implements View.OnClickListener
    6. {
    7. private View v_content; // 声明一个视图对象
    8. @Override
    9. protected void onCreate(Bundle savedInstanceState)
    10. {
    11. super.onCreate(savedInstanceState);
    12. setContentView(R.layout.activity_drawable_shape);
    13. // 从布局文件中获取名叫v_content的视图
    14. v_content = findViewById(R.id.v_content);
    15. // v_content的背景设置为圆角矩形
    16. // v_content.setBackgroundResource(R.drawable.shape_rect_gold);
    17. // 给btn_rect设置点击监听器
    18. findViewById(R.id.btn_rect).setOnClickListener(this);
    19. // 给btn_oval设置点击监听器
    20. findViewById(R.id.btn_oval).setOnClickListener(this);
    21. }
    22. @Override
    23. public void onClick(View v)
    24. {
    25. if (v.getId() == R.id.btn_rect) // 点击了“圆角矩形背景”按钮
    26. {
    27. v_content.setBackgroundResource(R.drawable.shape_rect_gold); // v_content的背景设置为圆角矩形
    28. }
    29. else if (v.getId() == R.id.btn_oval) // 点击了“椭圆背景”按钮
    30. {
    31. v_content.setBackgroundResource(R.drawable.shape_oval_rose); // v_content的背景设置为椭圆形状
    32. }
    33. }
    34. }

     

    shape_oval_rose.xml

    1. <shape xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:shape="oval" >
    3. <solid android:color="#F3F2EC" />
    4. <stroke
    5. android:width="1dp"
    6. android:color="#F10606" />
    7. shape>

    shape_rect_gold.xml

    1. <shape xmlns:android="http://schemas.android.com/apk/res/android" >
    2. <solid android:color="#ffdd66" />
    3. <stroke
    4. android:width="1dp"
    5. android:color="#E61111" />
    6. <corners android:radius="10dp" />
    7. shape>

    =================================================================================================================

     

     

    点九图片的扩展名是png,文件名后面常带有“.9”字样。因为该图片划分了3×3的九宫格区域,所以得名点九图片,也叫九宫格图片。

    在拉伸点九图片时,只拉伸内部区域,不拉伸边缘线条。

    在Android Studio中右击某张图片,并在右键菜单中选择“Create 9-Patch files”,接着单击OK按钮即可自动生成点九图片。

     

     

    123

  • 相关阅读:
    Java前后端分离的在线考试系统源码
    面试遇到算法题:实现LRU缓存
    Linux高并发服务器开发(六)线程
    3.30 OrCAD中原理图文件怎么进行DRC检测?
    2022牛客多校三_F
    找不到mfc140u.dll怎么办?修复缺失mfc140u.dll的多种方案分享
    Spring Boot Logback启动流程
    quill富文本工具栏添加行高配置
    LeetCode50天刷题计划(Day 18—— 搜索旋转排序数组(8.50-12.00)
    web随想笔记
  • 原文地址:https://blog.csdn.net/m0_61442607/article/details/126195731