标签: nine-patch

位图到NinePatch到新的缩放位图

我的问题是:

我需要创建一个使用NinePatch创建的重新缩放的位图.

我当前的系统从NinePatch文件创建一个Bitmap.然后将其输入NinePatch(或NinePatchDrawable).然后我需要调整它并输出到另一个Bitmap.

我已审阅,它帮了不少忙.

这是我目前的代码:

try {
        Bitmap bitmap1 = BitmapFactory.decodeStream(getAssets().open("gfx/head.9.png"));

        // Using NinePatch?
        NinePatch patch = new NinePatch(bitmap1, bitmap1.getNinePatchChunk(), null);
        // Or NinePatchDrawable?
        NinePatchDrawable patch = new NinePatchDrawable(bitmap1, bitmap1.getNinePatchChunk(), new Rect(), null);

        // Set dimensions from NinePatch and create new bitmap
        // Bitmap bitmap2 = ?
}
catch (IOException e) {
        e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

android bitmap nine-patch

3
推荐指数
1
解决办法
8743
查看次数

Android 9补丁图片按钮未按预期缩放

我正在尝试使用9补丁技术来创建按钮.

它在Eclipse的布局窗口中看起来非常棒

Eclipse布局

当我在模拟器中运行它时,它显示如下:

模拟器视图

这是实际的PNG图像

实际PNG

选择器XML

<item android:drawable="@drawable/splash_facebook_button" />
Run Code Online (Sandbox Code Playgroud)

布局中的按钮代码

   <Button
        android:id="@+id/button1"
        android:layout_width="208dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="20dip"
        android:background="@drawable/splash_facebook_button_selector"
        android:text="Sign up with Facebook" />
Run Code Online (Sandbox Code Playgroud)

android button selector nine-patch

3
推荐指数
1
解决办法
5314
查看次数

Android - 9补丁

我正在尝试使用9补丁图片创建一个新的微调器背景.我已经尝试了许多方法来获得完美的图像,但我失败了:s

这是我的9补丁: 在此输入图像描述

当我使用Draw-9-patch进行模拟但是没有显示带箭头的部分时,内容看起来很好,或者当它显示时,这部分是完全错误形成的.

我把顶部黑线放到整个尺寸上,问题仍然是一样的.

你知道怎么解决吗?

谢谢.

问候.

V.

java android spinner nine-patch

3
推荐指数
1
解决办法
1543
查看次数

九贴片图像显示奇怪的行为?

我正在Android中创建一个实现聊天功能的应用程序.我有2种聊天气泡 - 其他用户为蓝色,登录用户为橙色.我正在使用Nine-patch图像来处理这些气泡,因为气泡可以被拉伸.

蓝色气泡中的文字显示正常 - 位于中间(如下图所示).但是橙色气泡中的文字显示在图像上边缘的一些垂直间隙之后.我无法弄清楚为什么会这样.两个气泡都具有相同的属性,并且是按照相同的步骤创建的.请帮忙.提前致谢.

chatbubbles

这是橙色聊天泡泡:

orangebubble

android nine-patch android-layout

3
推荐指数
1
解决办法
1236
查看次数

你是否将真实图像(用于启动)转换为九个补丁?

正如标题所说,当您处理出现在闪屏或背景或警报弹出窗口中的真实图像时,您是将它们转换为九个补丁还是只需将它们调整为多个图像(800x480,960x540,720x1280等) ?

我不是将它们转换为九个补丁,而是调整为最常用的格式,我想知道我是否犯了这样的错误.

android screen-resolution nine-patch

3
推荐指数
1
解决办法
317
查看次数

为什么我们需要9补丁?

我的问题就像标题所说:为什么我们需要9个补丁图像?它们真的如此重要吗?实际上,他们真正做了什么?我没有清楚地得到9补丁图像的概念.

我知道9补丁图像是可扩展的.所以,假设我有一些完全适合我的ldpi设备的图像按钮.使用Draw 9-patch工具(android SDK的一部分),我可以标记可扩展区域,这个图像非常适合hdpi甚至xhdpi设备.边缘将是美好而顺利的.

但这是非常好的实践还是仅仅是另类?我应该为ldpi,mdpi,hdpi和xhdpi设备创建每个图像,还是只需在一个图像上使用Android SDK"Draw 9-patch",让Android处理各种设备?

我不是关于边缘,而是图片的实际内容.内容是否可扩展?

java android nine-patch

3
推荐指数
1
解决办法
1644
查看次数

如何在线性布局中右对齐

我将此布局作为列表项:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:gravity="center_vertical"
              android:layout_width="match_parent"
              android:orientation="horizontal"
              android:minHeight="42.3dp"
              android:layout_height="wrap_content">

    <TextView android:id="@+id/txtTagName"
              android:textColor="@color/White"
              android:layout_width="wrap_content"
              android:layout_height="32dp"
              android:layout_marginLeft="10dp"
              android:textSize="13sp"
              android:gravity="center"
              android:layout_gravity="left"
              android:background="@drawable/tag"/>

    <ImageView android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:src="@drawable/ic_action_discard"
                 android:layout_marginLeft="10dp"
                 android:layout_gravity="right"
                 android:gravity="center"
                 android:scaleType="center"
                 android:alpha="0.5"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

在此处输入图片说明

标签补丁9看起来像这样:

在此处输入图片说明

我有3个问题:

  1. 如何使删除图标始终位于右侧。
  2. 如何使标签图像的模糊部分正确缩放?(补丁9)
  3. 标记旁边有一个删除图标,还是长按一下,会更好?

谢谢。

layout user-interface android alignment nine-patch

3
推荐指数
1
解决办法
2620
查看次数

9 Patch png无法正常工作的背景

我正在尝试为我的应用创建一个在所有分辨率/方向上看起来都很清晰的背景图像.

我是Android开发的新手,但我知道实现这一目标的最简单方法是使用9个补丁图像.我以为我明白他们是如何运作的,但我无法让它发挥作用.

我已经创建了一个背景图像@ 768 x 1280这是我的Nexus 4的分辨率.当我不修补它并在我的设备上查看它时,它看起来很好(显然,因为分辨率/方向与设备的匹配) :

在此输入图像描述

所以看起来很漂亮.

但后来我使用该drawer9patch.bat文件将补丁添加到图像上,并将文件重命名为'.9.png',结果如下:

在此输入图像描述

精疲力竭!

奇怪的是:在draw9patch工具右侧的预览窗格中,它看起来都很好....

我也试过以较小的分辨率制作图像,但徽标和文字看起来并不清晰; 他们看起来像素化......

我觉得必须有一些我不知道的难题的重要部分?我定义为内容的区域正在被拉伸?

这是我的布局代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/my_background_image_patched"
    android:padding="0px">
<!-- Login controls here --->
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的9补丁图片(位于'drawable'文件夹):

在此输入图像描述

android nine-patch

3
推荐指数
1
解决办法
1616
查看次数

如何删除9补丁图像中的黑线?

当我生成9补丁图像时,图像有黑线:

在此输入图像描述

如何删除黑色像素?

android nine-patch

3
推荐指数
1
解决办法
4027
查看次数

适用于iOS和Swift 3.0的等效Android 9补丁(多个可伸缩区域)

我是Swift和iOS的新手.在Android中,我们可以轻松地拉伸图像并将一些内容放在此图像中,但我找不到iOS的任何等效内容.

我用resizableImage(withCapInsets)方法找到了很多教程/帖子,但它并不是我想要的.看这个图像:

具有resizableImage的可伸展区域

区域2,4,5,6和8将被拉伸并且仅被拉伸.使用Android 9补丁,我可以定义多个可伸缩区域,如下所示:

多个可伸缩区域

在这里,只有红色区域是可拉伸的.此方法对于保持绿色区域固定非常有用,但resizableImage(withCapInsets)是不可能的.

此外,使用Android 9补丁,我们可以在蓝色区域轻松定义内容区域,如texview,imageview,...,图像根据此区域中的文本大小进行拉伸.iOS和Swift有可能吗?

image stretch nine-patch ios swift

3
推荐指数
1
解决办法
3514
查看次数