2014-04-22 29 views
0

我试图以编程方式在Horizo​​ntalScrollView上绘制边框,并用不同的颜色填充内部。我尝试过不同的方法,但没有成功。我一次只能画一件东西......这是我试过的最后一个代码。以Horizo​​ntalScrollView绘制边框以编程方式

private void applyViewBorder(View layout, String borderColor, 
     String fillColor, int borderWidth) { 
    if (fillColor == null || borderColor == null) 
     return; 
    RectShape rect = new RectShape(); 
    ShapeDrawable rectShapeDrawable = new ShapeDrawable(rect); 
    Paint paint = rectShapeDrawable.getPaint(); 
    paint.setStyle(Style.STROKE); 
    paint.setStrokeWidth(borderWidth); 
    paint.setColor(Color.parseColor(borderColor)); 
    if (android.os.Build.VERSION.SDK_INT < 16) { 
     layout.setBackgroundDrawable(rectShapeDrawable); 
    } else { 
     layout.setBackground(rectShapeDrawable); 
    } 
    paint.setStyle(Style.FILL); 
    paint.setColor(Color.parseColor(fillColor)); 
    if (android.os.Build.VERSION.SDK_INT < 16) { 
     layout.setBackgroundDrawable(rectShapeDrawable); 
    } else { 
     layout.setBackground(rectShapeDrawable); 
    } 

} 

我已经搜查堆栈溢出,没有成功过...... 在此先感谢。 :)

回答

0

你可以尝试是

在如下项目绘制文件夹中创建XML名为border.xml:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
    <shape android:shape="rectangle"> 
     <solid android:color="#FF0000" /> 
    </shape> 
    </item> 
    <item android:left="5dp" android:right="5dp" android:top="5dp" > 
    <shape android:shape="rectangle"> 
     <solid android:color="#000000" /> 
    </shape> 
    </item>  
</layer-list> 

,比

yourshorizontalscrollview.setBackgroundDrawable(getResources().getDrawable(R.drawable.border)); 

,或者使用这一个:

yourshorizontalscrollview.setBackground(getResources().getDrawable(R.drawable.border)); 
+0

感谢您的快速回答。但是这一次,我不能这样做。这是一个义务,它以编程方式进行。 –