2013-03-08 76 views
0

我有两个UI组件,我想在我的Android应用程序中使用。带有阴影的Android UI组件

第一个是(有点单选按钮)文本挖掘时/点击在插图阴影气泡appers:

Radio button

见HTML演示:http://fiddle.jshell.net/Vq2A3/1/show/

第二是可拖拽卡被拖动时以更大的影子脱颖而出:

Draggable card

查看HTML演示:http://fiddle.jshell.net/yVnz4/2/show/

什么是在Android中实现这些东西的惯用方式 - 即双状态组件,圆角形状,插入阴影,可变框阴影,拖动?我想学习Android,所以我不需要现成的组件。我更喜欢链接到资源描述如何做到这一点。

谢谢你的回答。

回答

0

您可以在xml文件中设置角落,阴影等等。

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" > 
     <shape> 
      <solid 
       android:color="#449def" /> 
      <stroke 
       android:width="1dp" 
       android:color="#2f6699" /> 
      <corners 
       android:radius="3dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <gradient 
       android:startColor="#449def" 
       android:endColor="#2f6699" 
       android:angle="270" /> 
      <stroke 
       android:width="1dp" 
       android:color="#2f6699" /> 
      <corners 
       android:radius="4dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 
</selector> 

对于拖动按钮尝试是这样的:

 button.setOnTouchListener(new OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent me){ 
      if (me.getAction() == MotionEvent.ACTION_MOVE ){ 
       LayoutParams params = new LayoutParams(v.getWidth(), v.getHeight(),(int)(me.getRawX() - (v.getWidth()/2)), (int)(me.getRawY() - (v.getHeight()))); 
       v.setLayoutParams(params); 
      } 
      return true; 
     } 
    }); 

有很多的例子。搜索在谷歌,例如:“自定义按钮”,“拖放按钮”

+0

谢谢为你的答案。但是你展示的例子并没有放弃任何影子。此外,我还没有在Android文档中找到关于XML drawable中阴影的任何内容。 – 2013-03-10 20:04:37

+0

您可以使用已经有阴影的9-patch图像。如果你只想在阴影里看看这个[线程](http://stackoverflow.com/questions/5197892/add-shadow-to-custom-shape-on-android) – 2013-03-10 20:39:35

0

,你可以为这些按钮做的另一件事是使用图像按钮的onClick更改按钮的图片与myButton.setImageDrawable(Image_drawable);

+0

它不只是按钮。如果很容易,我会在任何地方使用阴影:) – 2013-03-10 20:09:01