2013-05-28 140 views

回答

1
  1. 创建布局文件夹命名为round_border一个XML文件。

  2. 现在把这个代码在XML文件中:

    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke android:width="4dp" android:color="#FF00FF00" /> 
    <solid android:color="#ffffff" /> 
    <padding android:left="7dp" android:top="7dp" 
         android:right="7dp" android:bottom="7dp" /> 
    <corners android:radius="10dp" /> 
    

  3. 现在使用这个文件作为LinearLayout的这样一个背景:

    <LinearLayout android:id="@+id/LinearLayout01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:padding="20dip" 
    android:background="@drawable/round_border"> 
    
+0

只是一个问题我的应用程序有一个背景图像无论如何只是让边界被看到? –

+0

@JacobAnthonyTonna你在寻找圆角的图像吗? – Raghunandan

+0

@JacobAnthonyTonna我不认为你可以设置线性布局。我猜你正在寻找具有圆角的图像 – Raghunandan

1

在您的线性布局

android:background="@drawable/bkg" 

定义如下XML中可绘制夹。

bkg.xml

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
<solid android:color="#10EB0A"/>  
<stroke android:width="3dp" 
    android:color="#0FECFF" /> 
<padding android:left="5dp" 
    android:top="5dp" 
    android:right="5dp" 
    android:bottom="5dp"/> 
<corners android:bottomRightRadius="7dp" 
    android:bottomLeftRadius="7dp" 
    android:topLeftRadius="7dp" 
    android:topRightRadius="7dp"/> 
</shape> 
0

这是一个自定义绘制,你可以使用:

class RoundedImageDrawable extends Drawable { 

    private Bitmap mBitmap; 
    private Matrix mMatrix; 
    private Path mPath; 
    private float mRx; 
    private float mRy; 

    public RoundedImageDrawable(Resources res , int id, float rx, float ry) { 
     mBitmap = BitmapFactory.decodeResource(res, id); 
     mMatrix = new Matrix(); 
     mPath = new Path(); 
     mRx = rx; 
     mRy = ry; 
    } 

    @Override 
    protected void onBoundsChange(Rect bounds) { 
     RectF src = new RectF(0, 0, mBitmap.getWidth(), mBitmap.getHeight()); 
     RectF dst = new RectF(bounds); 
     mMatrix.setRectToRect(src, dst, Matrix.ScaleToFit.FILL); 
     mPath.addRoundRect(dst, mRx, mRy, Direction.CW); 
    } 

    @Override 
    public void draw(Canvas canvas) { 
     canvas.save(); 
     canvas.clipPath(mPath); 
     canvas.drawBitmap(mBitmap, mMatrix, null); 
     canvas.restore(); 
    } 

    @Override 
    public void setAlpha(int alpha) { 
    } 

    @Override 
    public void setColorFilter(ColorFilter cf) { 
    } 

    @Override 
    public int getOpacity() { 
     return PixelFormat.TRANSLUCENT; 
    } 
} 

,并在活动中使用它:

LinearLayout ll = findViewById(R.id.layout); 
Drawable d = new RoundedImageDrawable(getResources(), R.drawable.background, 20, 20); 
ll.setBackgroundDrawable(d);