2011-09-22 85 views
0

我想提供一个类似于图中所示的背景可绘制的布局。我怎样才能使用可绘制的XML?请提出一个合适的方法来解决这个问题。如何在android中绘制这种类型的布局?

rectangleCutFromBottom

+0

检查此链接http://stackoverflow.com/questions/5841128/how-to -display-border-to-imageview – Randroid

回答

1

这是不可能与单一的XML绘制做到这一点,但也许你可以俱乐部两到产生这种效果。我会做这样

  1. 创建方形的加黑框
  2. 可拉伸创建剪辑绘制和剪辑sqaure绘制的底部。

参考这里

http://developer.android.com/guide/topics/resources/drawable-resource.html#Clip

您可以使用android:重力= “顶”,然后以编程设定的水平揭示90%(或更多)的图像

ImageView imageview = (ImageView) findViewById(R.id.image); 
ClipDrawable drawable = (ClipDrawable) imageview.getDrawable(); 
drawable.setLevel(drawable.getLevel() + 9500); 
+0

感谢rahul的快速回复。我正在使用你建议的方法。我尝试使用android:gravity = [“top”| “正确”| “left”]如剪辑可绘制文档中给出的。但是这个语法在我的xml文件中给了我错误。但是,当我使用单一属性android:gravity =“top”时,它可以正常工作,只有顶部线条可见。请在这件事上给予我帮助? – Shafi

+0

我已经更新了我的答案,您需要以编程方式设置关卡。我想知道为什么这不可能是xml文件中的另一个属性: - ? –

+0

正是我想要的。谢谢 :) – Shafi

0

我知道这是4年以上的事实,但对于其他人想要达到相同的结果,有一个非常简单的方法来实现这一点,创建一个layer-list xml drawable

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item> 
     <shape> 
      <padding 
       android:top="5dp" 
       android:left="5dp" 
       android:right="5dp" /> 
      <solid 
       android:color="@android:color/black" /> 
     </shape> 
    </item> 

    <item> 
     <shape> 
      <solid 
       android:color="@android:color/white" /> 
     </shape> 
    </item> 

</layer-list> 

保存此到项目的drawable文件夹,并引用它像任何其他绘制(android:src/android:background,或编程)