Интерфейс параллелограмма - PullRequest
0 голосов
/ 12 июня 2018

Как создать экран меню в Android Studio, с 3 параллелограммами, каждый из которых окрашен по-разному, и при нажатии на один из них открывается новая страница.Я не обязательно ищу кодовое решение, я бы предпочел понять концепцию сам и придумать какой-нибудь код.

enter image description here

1 Ответ

0 голосов
/ 12 июня 2018

Вы можете создать собственную форму параллелограмма.Создайте xml parallelogram.xml и сохраните его в своих чертежах.

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<!-- Colored rectangle-->
<item>
    <shape android:shape="rectangle">
        <size
            android:width="100dp"
            android:height="40dp" />
        <solid android:color="#ff0000" />
    </shape>
</item>

<!-- This rectangle for the left side -->
<!-- Its color should be the same as layout's background -->
<item
    android:bottom="-100dp"
    android:left="-100dp"
    android:right="100dp"
    android:top="-100dp">
    <rotate android:fromDegrees="45">
        <shape android:shape="rectangle">
            <solid android:color="#ffffff" />
        </shape>
    </rotate>
</item>

<!-- This rectangle for the right side -->
<!-- Their color should be the same as layout's background -->
<item
    android:bottom="-100dp"
    android:left="100dp"
    android:right="-100dp"
    android:top="-100dp">
    <rotate android:fromDegrees="45">
        <shape android:shape="rectangle">
            <solid android:color="#ffffff" />
        </shape>
    </rotate>
</item>

Далее в вашем макете используйте XML следующим образом

<?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:gravity="center"
android:orientation="vertical"
tools:context=".others.ActivityHome"
android:background="#fff">

<View
    android:id="@+id/parallelogram1"
    android:layout_width="100dp"
    android:layout_height="40dp"
    android:layout_centerInParent="true"
    android:layout_gravity="center"
    android:layout_margin="50dp"
    android:background="@drawable/parallelogram" />

<View
    android:id="@+id/parallelogram2"
    android:layout_width="100dp"
    android:layout_height="40dp"
    android:layout_centerInParent="true"
    android:layout_gravity="center"
    android:layout_margin="50dp"
    android:background="@drawable/parallelogram" />


<View
    android:id="@+id/parallelogram3"
    android:layout_width="100dp"
    android:layout_height="40dp"
    android:layout_centerInParent="true"
    android:layout_gravity="center"
    android:layout_margin="50dp"
    android:background="@drawable/parallelogram" />


</LinearLayout>

И, наконец, вваша деятельность инициализирует ваше представление и устанавливает методы onclick как это:

public class ActivityHome extends AppCompatActivity {

private View parallelogram1, parallelogram2, parallelogram3;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home2);

    parallelogram1 = (View) findViewById(R.id.parallelogram1);
    parallelogram2 = (View) findViewById(R.id.parallelogram2);
    parallelogram3 = (View) findViewById(R.id.parallelogram3);

    parallelogram1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(ActivityHome.this, ActivityOne.class);
            startActivity(intent);
        }
    });

    parallelogram2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(ActivityHome.this, ActivityTwo.class);
            startActivity(intent);
        }
    });

    parallelogram3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(ActivityHome.this, ActivityThree.class);
            startActivity(intent);[enter image description here][1]
        }
    });
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...