在Android中,你可以使用setOutlineProvider()
方法為視圖設置自定義形狀
ViewOutlineProvider
。然后重寫getOutline()
方法,在這個方法中定義你的自定義形狀。例如,我們創建一個圓形的OutlineProvider:import android.graphics.Outline;
import android.view.View;
import android.view.ViewOutlineProvider;
public class CircleOutlineProvider extends ViewOutlineProvider {
@Override
public void getOutline(View view, Outline outline) {
int width = view.getWidth();
int height = view.getHeight();
int radius = Math.min(width, height) / 2;
outline.setOval(0, 0, width, height);
}
}
activity_main.xml
中添加一個FrameLayout
: android:id="@+id/custom_shape"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="@android:color/holo_blue_dark"/>
setOutlineProvider()
方法將自定義的OutlineProvider應用到視圖上。例如,在MainActivity.java
中:import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View customShape = findViewById(R.id.custom_shape);
customShape.setOutlineProvider(new CircleOutlineProvider());
customShape.setClipToOutline(true);
}
}
現在運行你的應用程序,你會看到一個圓形的藍色背景。你可以根據需要修改CircleOutlineProvider
類中的getOutline()
方法,以實現不同的自定義形狀。