.9资源是啥?
.9图是一种可以拉伸的图片格式,当你把它用作背景图时,android系统会根据实际情况来拉伸图片资源。比如按钮的背景必须根据上面显示文字的长短作拉伸。NinePatch就是额外包含了一个像素边界的PNG图片,用.9.png来标识,并且存放在应用的res/drawable下。上边界和左边界定义了.9图的拉伸规则和静态不变的区域,两条线的交集为一个矩形,这个矩形内的像素可以自由拉伸;右边界和下边界定义了内容的位置,可以理解为pading。
可以利用sdk/tool/里的Draw 9-patch工具根据具体需求在png图四周加特定的像素描边生成。
.setBackgroundDrawable(getNinePatchDrawable(getBitmapByResourceName("image/headwindows_bg2.9.png")))
ImageView imageView = new ImageView(getContext());
imageView.setImageBitmap(getBitmapByResourceName("image/logo01.png"));
protected Bitmap getBitmapByResourceName(String string) {
InputStreaminputStream = getClass().getResourceAsStream(string);
return BitmapFactory.decodeStream(inputStream);
}
String=”image/headwindows_bg2.9.png”为目标资源相对于当前class文件的路径。
相对路径引用.9资源
protected Drawable getNinePatchDrawable(Bitmap bitmap) {
byte[] chunk =bitmap.getNinePatchChunk();
NinePatchDrawableninePatchDrawable = new NinePatchDrawable(getContext().getResources(), bitmap, chunk,
new Rect(), null);
return ninePatchDrawable;
}
Tips:.9资源分两种,一种是未编译的源文件在应用源码的res/drawable下;另一种是在apk包中已经编译过的资源。区别是编译后的.9图里面多了chunk信息用来描述那个拉伸的像素边框。我们这里使用的.9图是要编译后的资源。
应用场景
在开发一个对外开放sdk的jar包时需要弹一些自定义的对话框和按钮,但jar包只是一个压缩包,无法像标准android应用那样使用resource来获取资源,只能通过相对路径使用文件流来解析资源文件。所以提出这种方案来满足这种需求,另外还有一种方法是使用系统默认的资源或者让调用sdk的应用自带这些资源然后通过三方应用传入的Context获取到resource从而取得资源。
- 大小: 12.8 KB
分享到:
相关推荐
在Android开发中,9-patch文件通常使用`.9.png`的扩展名,它可以被Android Studio和Android SDK中的`draw9patch`工具处理。但如果你在Mac上工作,可能需要使用第三方工具,如这个安装包提供的工具,因为默认的`draw9...
9Patch是一种PNG图片文件,扩展名为.9.png。它的特别之处在于图像的边缘有额外的像素条,用来标记哪些区域可以拉伸,哪些区域应该保持不变。这些标记使得图片在大小调整时能够正确地保持其内容的完整性,不会因为...
在Android项目中,NinePatch图片以`.9.png`为扩展名,并在布局文件中通过`<ImageView>`或特定的UI组件(如`Button`)引用。例如: ```xml android:layout_width="wrap_content" android:layout_height="wrap_...
标题 "ninePatch.rar" 暗示了这是一个与Android应用开发相关的资源包,特别是涉及到图形界面设计和优化。Nine-patch图是一种特殊的图像格式,在Android开发中用于创建可伸缩的图片,通常用于按钮、背景等UI元素,以...
假设原始图形文件名为sample.png,根据Android资源命名约定,九宫格图像的正确文件名应该是sample.9.png,因此D选项是正确答案。 根据提供的部分内容,以上是与Android应用工程师基础认证考试(OA0-002 V9.02)相关...
9. **性能优化**:考虑到移动设备的性能限制,源码可能包含了一些性能优化技巧,如减少drawCall,使用BitmapRegionDecoder加载大图,或者使用NinePatch图片节省内存。 10. **游戏状态管理**:游戏可能有多个状态...
15. Nine-patch / 9-patch / Ninepatch image 一种可变尺寸的位图资源,可用作设备上的背景或其他图片。 16. 资源 用户提供的 XML、位图或其他文件,构建程序时会导入进来,稍后会被代码加载,Android 支持多种...
Android提供了Resources类来加载和使用这些资源,也可以使用NinePatch图来适应不同尺寸的屏幕。 7. **动画效果**:为了提升游戏的视觉效果,可能添加了动画,如蛇移动的平滑过渡、食物消失的淡入淡出等。这可以通过...
9. **性能优化**:对于频繁刷新或动画的自定义View,了解`View`的缓存机制和`硬件加速`非常重要,可以通过开启硬件加速或者使用`NinePatch`资源来提升性能。 10. **交互设计**:`MyImageView`可能还包含了一些独特...
1. **Android游戏框架**:《坦克大战Android》采用的是Android原生的Java编程语言,可能使用了Android SDK中的SurfaceView或者更高级的游戏开发框架如LibGDX、Unity等。SurfaceView是Android系统专门为游戏和动画...
开发者会使用Bitmap类加载和处理图像,或者使用NinePatch技术来创建可拉伸的图像资源,以适应不同尺寸的屏幕。 总的来说,这个2D坦克小游戏展示了Android平台上使用Java进行游戏开发的基本流程和关键技术。通过研究...
4. **绘制自定义动画**:如果你想要更复杂的动画效果,可以使用`LayerDrawable`或`NinePatch`资源来创建自定义的动画效果,或者使用`ObjectAnimator`和`ValueAnimator`进行更精细的控制。 5. **颜色调整**:使用`...
9. **ninepatch**:九宫格图是一种特殊的图像格式,用于创建可拉伸的UI元素,此目录可能包含九宫格图的工具或资源。 10. **hierarchyviewer**:是Android提供的UI层级查看工具,用于可视化和调试应用程序的视图层次...
本资源"安卓Android源码——MyTextview3.rar"提供了一个自定义TextView的示例,这将帮助开发者深入理解Android SDK中的UI组件定制机制。让我们一起探索这个自定义TextView的实现细节及其背后的编程理念。 首先,...
为了使自定义阴影在任何版本的Android系统上都能工作,开发者可能还使用了`NinePatch`资源或`Shape Drawable`作为背景,配合` PorterDuff.Mode`进行混合,或者利用`BitmapShader`来实现更复杂的阴影效果。...
- 位图(Bitmap)和NinePatch:用于加载和显示游戏中的图片资源。 - 动画:通过帧动画(AnimationDrawable)或属性动画(ValueAnimator)实现塔克的移动、爆炸等效果。 - OpenGL ES:如果需要更复杂的3D渲染,...
在使用OGEngine_v2.1时,开发者可以结合其他开源库和工具,如Box2D或JBox2D进行物理模拟,使用NinePatch资源优化UI,利用Google Play Services实现多人在线游戏等功能。此外,持续关注OGEngine的更新和社区讨论,有...
要实现这样的Button,我们需要理解MIUI界面的特点,并运用Android SDK中的相关技术和组件。 首先,MIUI设置页面顶部的Button通常具有以下特征: 1. 突出显示:Button通常在顶部居中,具有较高的视觉优先级。 2. ...
例如,你可以创建一个NinePatch图片来定义进度条的外观,或者使用Shape Drawable来创建具有渐变色、边框等效果的进度条。 五、动画效果 通过使用Animation或者ObjectAnimator,开发者可以为ProgressBar添加动画效果...