ninepatch大便出血是什么原因么

您现在的位置: &
Android Nine Patch图片及按钮背景
Android Nine Patch图片及按钮背景
  NinePatchDrawable 绘画的是一个能够
伸缩的位图图像,Android会自动调整大小来容纳显示的内容。一个例子就是NinePatch为背景,运用
的Android按钮,按钮必须伸缩来容纳长度改动
的字符  NinePatchDrawable 是一个准则
的PNG图像,它包含
额外的1个像素的边界,你必须保存它后缀为.9.png,并且保持到工程的res/drawable目录中。假如
你是从 APK解压后得到的*.9.png文件,留心
它是已将周围的空白像素去掉了的,在运用
时必须再加上。  这个边界是用来确定图像的可伸缩和静态区域。你能够
在左边和上边的线上画一个或多个黑色的1个像素指出可伸缩的部分(你能够
可伸缩部分),它的相对位置在可伸缩部分相似
,所以大的部分总是很大的。  你还有能够
在图像的右边和下边画一条可选的drawable区域(有效的,内边距线)。假如
你的视图对象配置
NinePath为背景然后指定特殊的视图字体,它将自行伸缩使所有的文本来适应根据右线与底部线设计好的区域(假如
有的话),当然内边距线不包含
其中,Android能够
左边的线与上面的线来定义一个drawable区域。  咱们
来澄清一下这两条不一样
的线,左边跟顶部的线来定义哪些图像的像素准许
在伸缩时被复制。
  底部与右边的线用来定义一个相对位置内的图像,视图的内容就放入其中。  能够
tools\draw9patch.bat工具来编辑*.9.png图片,能够
看出该工具特别直观的展示了图片在上下或左右拉伸时的成效
以及作为背景时其内容显示的位置。  作Nine Patch为按钮背景运用
:&Button id="@+id/big"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="text!"        android:textSize="30sp"        android:background="@drawable/my_button_background"/&假如
按钮在按下或者取得
焦点时,有不一样
的背景图片,则能够
的背景图片放在drawable目录下(.9.png)格式,同时在drawable目录中新建一个xml文件(内容如下), android:background="@drawable/(XML文件名)",这样就能够
状态显示不一样
的背景。&?xml version="1.0" encoding="UTF-8"?& &selector xmlns:android=""&   &item android:state_focused="true" android:state_pressed="true"     android:drawable="@drawable/button_focused" /&   &item android:state_focused="false" android:state_pressed="true"     android:drawable="@drawable/button_focused" /&   &item android:state_focused="true"     android:drawable="@drawable/button_focused" /&   &item android:state_focused="false"     android:drawable="@drawable/button_defocused" /& &/selector&  
  (出处:)
&&&主编推荐
&&&热门试卷
&&&最新视频
&&&热门阅读
&&&最新问答
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&增值电信业务经营许可证湘B2-扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Swing中引来Android的NinePatch技术让Swing拥有Android的外观定制能力
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口您现在的位置: &
Android使用NinePatch图片实现大小可变的Button
Android使用NinePatch图片实现大小可变的Button
  在Android的一些应用程序中,有时要用到大小可以延展的图片做背景,实现的方法是使用NinePatch。
  下面是一个用NinePatch图片给Button做背景的例子,实现一个可以随文字大小而改变的图片Button:
准备一张NinePatch资源图片(button.9.png),具体方法参考();
将button.9.png拖曳(drag)到android工程的/res/drawable-mdpi目录下。
修改main.XML文件:
&&&主编推荐
&&&热门试卷
&&&最新视频
&&&热门阅读
&&&最新问答
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&增值电信业务经营许可证湘B2- 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
OPhone NinePatch使用教程--创建优美的背景图片
下载积分:
内容提示:OPhone NinePatch使用教程--创建优美的背景图片
文档格式:PDF|
浏览次数:5|
上传日期: 17:12:11|
文档星级:
该用户还上传了这些文档
官方公共微信
下载文档:OPhone NinePatch使用教程--创建优美的背景图片.PDF当前位置: >
> java引出Android NinePatch技术的意义
java引出Android NinePatch技术的意义
pingjin & at
java引入Android NinePatch技术的意义  java与Android本署一个平台。大部分技术可以移植。在java标准平台中引入Android NinePatch技术可以使其UI设计大大得到改善:
  图片准备:
  Android&NinePatch技术介绍:
  附NinePatch jar包下载:
  应用NinePatch技术代码:
  package com.
import java.awt.G
import java.awt.Graphics2D;
import java.awt.R
import java.io.IOE
import java.io.InputS
import javax.swing.BorderF
import javax.swing.JB
import javax.swing.JF
import javax.swing.JP
import javax.swing.SwingU
import com.android.ninepatch.NineP
@SuppressWarnings(&serial&)
public class NinePatchTest extends JPanel {
NinePatch nineP
* This constructor which serves as a content pane uses a default flow
* layout and a double-buffering strategy.
public NinePatchTest() {
ninePatch = loadNinePatch(&/images/content_bg1.9.png&);
add(new JButton(&Button 1&));
add(new JButton(&Button 2&));
add(new JButton(&Button 3&));
add(new JButton(&Button 4&));
* @param path
- the image path.
* @return an NinePatch object, or {@code null} if the given path is not
valid or an error occurs during loading.
private NinePatch loadNinePatch(String path) {
InputStream stream = this.getClass().getResourceAsStream(path);
if (stream != null) {
return NinePatch.load(stream, true, false);
} catch (IOException e) {
System.err.println(&An error occurs during loading.&);
e.printStackTrace();
System.err.println(&Couldn't find the file: & + path);
* To improve the repaint speed, the code block contained in
* paintComponent() must be able to be executed quickly. For example, we
* usually put the load image code out of the paintComponent() for rapid UI
* @see javax.swing.JComponent#paintComponent(java.awt.Graphics)
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)
Rectangle clip = g2.getClipBounds();
ninePatch.draw(g2, clip.x, clip.y, clip.width, clip.height);
private static void createAndShowGUI() {
// Create and set up the window.
JFrame frame = new JFrame(&NinePatch test&);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Set up the content pane.
JPanel contentPane = new NinePatchTest();
contentPane.setOpaque(true); // content pane must be opaque
contentPane.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
frame.setContentPane(contentPane);
// Display the window.
frame.pack();
frame.setVisible(true);
public static void main(String[] args) {
// Schedule a job for the EDT:
// Creating and showing this application's GUI.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
  利用后2幅图(格式.9.png)得到如下效果:
  如果使用传统的双线性插值进行图像缩放,我们来对比下效果:
  双线性插值应用代码:
  package com.
import java.awt.G
import java.awt.Graphics2D;
import java.awt.R
import java.awt.RenderingH
import java.awt.image.BufferedI
import java.io.IOE
import java.io.InputS
import javax.imageio.ImageIO;
import javax.swing.BorderF
import javax.swing.JB
import javax.swing.JF
import javax.swing.JP
import javax.swing.SwingU
@SuppressWarnings(&serial&)
public class NinePatchTestForCompare extends JPanel {
* This constructor uses a default flow layout and a double-buffering
* strategy.
public NinePatchTestForCompare() {
image = loadImage(&/images/content_bg2.png&);
add(new JButton(&Button 1&));
add(new JButton(&Button 2&));
add(new JButton(&Button 3&));
add(new JButton(&Button 4&));
* @param path
- the image path.
* @return an BufferedImage object, or {@code null} if the given path is not
valid or an error occurs during loading.
private BufferedImage loadImage(String path) {
InputStream stream = this.getClass().getResourceAsStream(path);
if (stream != null) {
return ImageIO.read(stream);
} catch (IOException e) {
System.err.println(&An error occurs during loading.&);
e.printStackTrace();
System.err.println(&Couldn't find the file: & + path);
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)
Rectangle clip = g2.getClipBounds();
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2.drawImage(image, clip.x, clip.y, clip.width, clip.height, null);
private static void createAndShowGUI() {
// Create and set up the window.
JFrame frame = new JFrame(&NinePatchTestForCompare&);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Set up the content pane.
JPanel contentPane = new NinePatchTestForCompare();
contentPane.setOpaque(true); // content pane must be opaque
contentPane.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
frame.setContentPane(contentPane);
// Display the window.
frame.pack();
frame.setVisible(true);
public static void main(String[] args) {
// Schedule a job for the EDT:
// Creating and showing this application's GUI.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
使用的前2幅图(格式.png),效果如下:
  不用我多说,就可以看出NinePatch技术的优势了。
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&增值电信业务经营许可证湘B2-}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信