Mac 下使用Android studio生成.9png图片

本文介绍了在Mac系统中如何使用Android Studio制作.9png拉伸图片。步骤包括将PNG图片放入drawable目录,创建9-patch文件,编辑拉伸区域,并提供了解除边界线的方法。完成后的.9png图片可用于Android应用的UI拉伸效果。
部署运行你感兴趣的模型镜像

       最近在改版公司的UI,最终效果是这样的:

                             

     看到效果有点崩,倒不是有多难实现,主要是这个侧滑UI几乎两三周一换,真的是疲劳.这篇先简单普及一下mac系统下的.9png图片制作.废话不多说,下面开始一步步做起来:

1.首先要准备一个目标图片,最好是png格式,将其复制到android studio的drawable目录下;

2.选中该图片,右击选择create 9-patch-file,选择生成.9png图片所在目录,一般选择mimap目录下,并将drawable下的目标图片删除;

3.双击mimap目录下生成的.9图片,进入编辑模式,,如下图所示:


4.编辑规则如下:

    上边黑线:横向拉伸区域,必须要画的,拉伸是横向拉伸,如右边的区域第二个拉伸的就是横向拉伸的效果
    左边黑线:纵向拉伸区域,必须要画的,拉伸是纵向拉伸,如右边的区域第一个拉伸的就是纵向拉伸的效果
    下边黑线:可选,横向内容显示区域
    右边黑线:可选,纵向内容显示区域

拖动四周的边界线即可生成黑线,只有上边和左边是拉伸区域,右边和下面则是里面内容的显示区域

5.画错了想取消重新画怎么办?

很简单,由于mac与windows的差异,快捷键也存在差异,如果想取消某一块的边界线,只需要按住control键,同时选中取消区域的起点,开始划线即可,如图,取消部分的边界线显示为红色

,这样就成功完成了.9图片的制作,接下来自己引用就ok了


补充:本文仅做记录和供大家参考,下篇将会记录上图侧滑栏的实现,有不足之处和意见请大家提出,谢谢.

您可能感兴趣的与本文相关的镜像

Qwen-Image-Edit-2509

Qwen-Image-Edit-2509

图片编辑
Qwen

Qwen-Image-Edit-2509 是阿里巴巴通义千问团队于2025年9月发布的最新图像编辑AI模型,主要支持多图编辑,包括“人物+人物”、“人物+商品”等组合玩法

在 **Android Studio 2025.2.1**(基于最新 Arctic Fox 或更高版本的架构)中,`R.java` 文件依然是 **由构建系统自动生成的**,你 **不需要手动创建或触发生成过程**。但你可以通过正确的操作确保它被成功生成。 下面我将详细解释:在这个新版 Android Studio 中,如何让 `R.java` 正确生成,并告诉你 **为什么你看不到它、是否正常、怎么验证它存在**。 --- ## ✅ 一、`R.java` 是如何生成的?(原理) `R.java` 是 Android 构建工具链在编译阶段自动产生的类文件,包含所有资源(如布局、字符串、图片、raw 音频等)的 ID 常量。 ### 生成流程如下: ``` res/ 所有资源 → AAPT2 编译 → R.txt (资源索引) → javac → R.java → .class → APK ``` 📌 关键点: - 不需要你写代码 - 只要项目中有合法资源文件(比如 `res/layout/activity_main.xml`) - 并执行了一次成功构建 → 系统就会为你生成 `R.java` --- ## ✅ 二、在 Android Studio 2025.2.1 中如何触发 `R.java` 生成? ### ✅ 方法:执行一次 **Build** 操作 #### 步骤如下: 1. 打开你的项目 2. 确保至少有一个资源文件存在,例如: - `res/layout/activity_main.xml` - 或 `res/values/strings.xml` 3. 菜单栏点击: > **Build → Make Project** (快捷键:`Ctrl + F9` Windows / `Cmd + F9` Mac) 4. 等待构建完成(底部显示 “Build: successful”) ✅ 此时 `R.java` 已经生成! --- ## 🔍 三、在哪里可以找到 `R.java`?(新版路径变化) 从 **AGP 7.0+ 开始(包括 2025.2.1 使用的 AGP 8.x)**,Google 改进了构建流程,`R.java` 的物理位置变得更隐蔽了。 > ❗ 它可能不再出现在传统路径: > ``` > app/build/generated/source/r/debug/com/example/myapp/R.java > ``` 而是使用更复杂的中间目录结构,例如: ``` app/build/generated/aidl_source_output_dir/debug/out/com/example/myapp/R.java ``` 或者以二进制形式参与编译而不暴露源码。 但这不重要 —— **IDE 能识别并提供补全就说明它存在!** --- ## 🧩 四、如何确认 `R.java` 是否已生成?(实用判断法) 不要纠结“能不能看到文件”,而要看以下几点: | 判断方式 | 操作方法 | 成功标志 | |--------|---------|---------| | ✅ 自动补全 | 在 `MainActivity.java` 输入 `R.` | 出现下拉提示(如 `R.layout`, `R.id`)✅ | | ✅ 引用资源 | 写 `setContentView(R.layout.activity_main);` | 不报红 ✔️ | | ✅ 日志输出 | `Log.d("TAG", "Res ID: " + R.raw.sample_audio);` | 能打印数字(如 `2131099648`)✅ | | ✅ 成功运行 App | 点击 ▶️ Run | 安装到设备且无编译错误 ✅ | 👉 只要以上任意一项成立,就说明 `R.java` 已生成并可用! --- ## ⚠️ 五、如果 `R` 报红?常见原因与修复 即使你做了 Build,仍可能出现 `R` 找不到的情况。以下是常见问题和解决方案: ### ❌ 1. 资源文件有语法错误 比如 XML 中缺少引号、标签未闭合: ```xml <!-- res/values/strings.xml --> <string name="app_name>Missing quote</string> <!-- ❌ 错误 --> ``` 🔧 **解决**:打开所有 `res/` 下的 XML 文件,检查红色波浪线,修复后重新 Build。 --- ### ❌ 2. 包名不一致 检查 `build.gradle(app)` 中的命名空间是否匹配实际包名: ```gradle android { namespace &#39;com.example.audioplayer&#39; // 必须和 Java 包名一致 } ``` 否则 `R` 类会生成在别的包下,导致找不到。 --- ### ❌ 3. 使用了非法资源命名 资源文件名只能是: - 小写字母 a-z - 数字 0-9 - 下划线 _ ❌ 错误示例: - `my-file.mp3` → 改为 `my_file.mp3` - `MyAudio.mp3` → 改为 `myaudio.mp3` - `icon.png(1).png` → 删除括号 这类错误会导致资源无法注册进 `R.java` --- ### ❌ 4. 缓存问题(最常见于升级后的 AS) > File → Invalidate Caches / Restart → **Invalidate and Restart** 清除旧缓存后重建项目。 --- ### ❌ 5. Gradle 同步失败 查看底部是否有: > “Gradle sync failed” 🔧 解决: - 更新 `gradle/wrapper/gradle-wrapper.properties` 到兼容版本 - 更新 `buildscript` 中的 AGP 版本 - 点击提示栏上的 **Sync Now** --- ## ✅ 六、演示代码验证 `R.java` 是否工作 在 `MainActivity.java` 中添加: ```java import android.util.Log; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 这行要用 R Log.d(TAG, "Layout Resource ID: " + R.layout.activity_main); Log.d(TAG, "Package Name: " + getPackageName()); // 如果你有 raw/sample_audio.mp3 if (BuildConfig.DEBUG) { Log.d(TAG, "Raw Resource ID: " + R.raw.sample_audio); } } } ``` ✅ 如果日志能打印出类似: ``` Layout Resource ID: 2131230721 Raw Resource ID: 2131099648 ``` 那就说明 `R.java` 不仅存在,而且完全可用! --- ## ✅ 七、总结:在 2025.2.1 中生成 `R.java` 的完整流程 | 步骤 | 操作 | |------|------| | 1 | 确保 `res/` 目录下有合法资源(如 layout、values) | | 2 | 如果要用 `R.raw.xxx`,请创建 `res/raw/` 并放入音频文件(小写命名) | | 3 | 菜单 → Build → Make Project(或 Run App) | | 4 | 观察代码中 `R.` 是否有提示、是否报错 | | 5 | 若报错,检查 XML、包名、命名规范 | | 6 | 必要时清理缓存:Invalidate Caches and Restart | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值