需求:好多时候,需要给组件加入圆角的效果,如下图所示:
现在,要做的就是,实现 图中所示的圆角效果。
第一步:在 res/drawable文件下添加 ,文件: btn_background_shape.xml 文件。 /TestShape2/res/drawable/btn_background_shape.xml
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 这块的 corner重要作用是 控制:那个圆角的半径,值越大,半径越大!圆角的弧度就越大 -->
<corners android:radius="15dp"/>
<solid android:color="#ffffff"/>
<gradient
android:startColor="#4EC9D8"
android:endColor="#030"
android:angle="90"
/>
</shape>
第二步:为要实现这个效果的组件,引入这个文件:
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
<!-- background 即引入:所需效果的 shape -->
<Button
android:layout_width="150dp"
android:layout_height="150dp"
android:text="Hello Shape"
android:layout_gravity="center"
android:background="@drawable/btn_background_shape"
/>
</LinearLayout>
第三步:在代码中引入,即可实现:
package com.zhanggeng.testshape2;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
如此,便可大功告成!