Android Studio 制作.9图片

本文介绍了Android开发中.9图片的基本概念及制作方法。通过简单的步骤指导如何创建.9图片,并解释各边框的意义,确保图片能适配不同屏幕尺寸。

在Android开发中,对于一些背景框相关的图片,一般会使用.9图片来处理,好处是不用针对每个尺寸都去切图,同时也减少了apk的体积,但实际情况,好多美工都不会处理.9图片,这就要求我们自己会处理。

在Android Studio中就已经提供了工具,同时对.9图片有很严格的要求,如果制作不合格,可能会报下面的错误:

Error:Execution failed for task ':app:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.AaptException: 

下面简单介绍一个.9图片的制作:

1.把需要制作的图片放到图片文件夹下

2.右键该图片,选择create 9-patch file到drawable文件夹下

3.针对图片各边做下简单说明:

上:横向拉伸的区域,把想要拉伸的地方,画上一个像素点即可(注意最好是一个像素,太长会有问题),不画线的地方不被拉伸

下:横向显示的区域,也就是说线的宽度代表了内容显示的宽度

左:纵向拉伸的区域,把想要拉伸的地方,画上一个像素点即可(注意最好是一个像素,太长会有问题

右:纵向显示的区域,也就是说线的高度代表了内容显示的高度

当我们做完之后,可以点击Show bad patches,这样有错误的地方就会显示出来,那表示我们还要在调整。

以上就是.9图片的制作,重要的是理解各边代表的含义,这样做出来的图片就可以正确使用了。




### 如何在 Android Studio创建九宫格图 (.9 图片) #### 什么是 .9 图片? `.9` 图片是一种特殊的 PNG 文件,用于定义可拉伸区域和内容区域。它允许开发者指定哪些部分可以被拉伸而不会失真,从而适应不同的屏幕尺寸和分辨率。 --- #### 创建 `.9` 图片的步骤 1. **准备原始图片** 需要一张适合用作背景或其他 UI 元素的 PNG 图像文件[^2]。确保图像清晰且无损。 2. **重命名文件** 将原始 PNG 文件名改为 `*.9.png` 的形式。例如,如果原文件名为 `background.png`,则将其更名为 `background.9.png`。 3. **编辑 `.9` 图片** 使用工具(如 Android Studio 或第三方软件)打开并编辑 `.9` 图片: - 在图片四周添加一条细线框。 - 定义 **拉伸区域** 和 **内容区域**: - 拉伸区域:通过绘制水平和垂直线条来标记图片中可以安全拉伸的部分。 - 内容区域:标记出显示实际内容的安全范围,防止重要内容被裁剪或变形。 4. **保存并导入项目** 将编辑好的 `.9` 图片放置到项目的 `drawable` 资源目录下。路径通常为 `..\projectname\app\src\main\res\drawable`。 5. **使用 `.9` 图片** 在布局文件中引用该图片作为背景或按钮资源。例如,在 XML 布局中设置如下属性: ```xml android:background="@drawable/background" ``` --- #### 示例代码 以下是实现九宫格功能的一个简单例子: ##### activity_main.xml (布局文件) ```xml <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:columnCount="3" android:rowCount="3"> <!-- 添加子视图 --> </GridLayout> ``` ##### item.xml (单个网格项布局) ```xml <ImageView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="1" android:scaleType="centerCrop" android:adjustViewBounds="true"/> ``` ##### MainActivity.java (Java 主逻辑) ```java import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.GridLayout; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); GridLayout gridLayout = findViewById(R.id.gridLayout); // 动态加载图片 for(int i=0; i<9;i++) { ImageView imageView = new ImageView(this); imageView.setImageResource(R.drawable.background); // 替换为你的 .9 图片资源 GridLayout.LayoutParams params = new GridLayout.LayoutParams(); params.width = getResources().getDisplayMetrics().widthPixels / 3; params.height = params.width; imageView.setLayoutParams(params); gridLayout.addView(imageView); } } } ``` --- #### 注意事项 - 确保 `.9` 图片的边界线宽度不超过 1px,否则可能导致渲染异常。 - 如果需要更复杂的交互效果,可以通过自定义 View 来扩展功能[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值