सबसे आसान तरीका केवल उस तिरछे कट के साथ पृष्ठभूमि छवि बनाना है। यदि आप एक गतिशील लेआउट चाहते हैं और आप वास्तव में विजेट को काटना चाहते हैं, तो Canvas.saveLayer/पुनर्स्थापित करें का उपयोग करें।
private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
private Xfermode pdMode = new PorterDuffXfermode(PorterDuff.Mode.CLEAR);
private Path path = new Path();
protected void dispatchDraw(Canvas canvas) {
int saveCount = canvas.saveLayer(0, 0, getWidth(), getHeight(), null, Canvas.ALL_SAVE_FLAG);
super.dispatchDraw(canvas);
paint.setXfermode(pdMode);
path.reset();
path.moveTo(0, getHeight());
path.lineTo(getWidth(), getHeight());
path.lineTo(getWidth(), getHeight() - TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50, getResources().getDisplayMetrics()));
path.close();
canvas.drawPath(path, paint);
canvas.restoreToCount(saveCount);
paint.setXfermode(null);
}
सार: इस तरह https://gist.github.com/ZieIony/8480b2d335c1aeb51167
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main">
<com.example.marcin.splitlayout.CutLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:scaleType="centerCrop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/mazda" />
</com.example.marcin.splitlayout.CutLayout>
<TextView
android:layout_margin="16dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Mazda 3" />
</LinearLayout>
Btw। यह बात हाल ही में बहुत लोकप्रिय है :)
लेकिन क्या मैं ऊपरी हिस्से की स्लाइड/विकर्ण पर एफएबी चाहता हूं? –
फिर इसे ले जाएं। मेरा एफएबी उस मानक एंड्रॉइड प्रोजेक्ट टेम्पलेट का सिर्फ एक हिस्सा है, लेकिन आप अपने एफएबी को नीचे लेआउट के ऊपर या जहां भी चाहें – Zielony
@ ज़ीलोनी, क्या आप ऊपर स्क्रीनशॉट के एक्सएमएल लेआउट कोड पोस्ट कर सकते हैं। – Pratap