Android:如何为pierchart中的recyclerview创建图例

时间:2019-06-27 09:21:22

标签: android gridview android-recyclerview legend

在我的android应用程序中,我正在使用recyclerview创建一个类似结构的表格,该表格将显示姓名,年龄,人的位置,如下所示。 enter image description here

我不想为该recyclerview创建标题,名称,年龄,地点,而不是像我通常看到的那样只添加一个图例/索引(我不知道该怎么称呼)在饼图,barchart,地图等上...,以便其他人可以理解颜色指示的内容。我想要的是下面的内容。

示例1

Example 1

示例2

Example 2

示例3:

enter image description here

我不知道它是否内置在android中。我只想用一种具有效果形状的简单方法来创建它,以便我可以在我的应用程序中的任何地方使用它。 >

1 个答案:

答案 0 :(得分:1)

嗨(^ _ ^)!将以下代码放入 recyclerview的项目布局文件中,并使用视图ID可以轻松实现功能;)

public class ShowFirebase extends AppCompatActivity {
ListView ListView;
Button Load;
String phoneNumber;
String name;
DatabaseReference databaseReference;
ArrayList<String> aa = new ArrayList<>();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_show_firebase);
    GetNumber(this.getContentResolver());
    ListView = findViewById(R.id.ListView);
    Load = findViewById(R.id.Next);
    databaseReference = FirebaseDatabase.getInstance().getReference();
    databaseReference = FirebaseDatabase.getInstance().getReference().child("users");
    databaseReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            ArrayList<String> numbers = new ArrayList<>();
            for (DataSnapshot ds : dataSnapshot.getChildren()) {
                String number = ds.child("phone").getValue(String.class);
                String name = ds.child("name").getValue(String.class);
                numbers.add(number);
            }
            numbers.retainAll(aa);
            ArrayAdapter stringArrayAdapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, numbers);
            ListView.setAdapter(stringArrayAdapter);


        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });


}
private void GetNumber(ContentResolver contentResolver) {
    Cursor phones = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, ContactsContract.Contacts.SORT_KEY_PRIMARY + " ASC");
    while (phones.moveToNext()) {
        name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
        phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
        System.out.println("......." + phoneNumber);

        aa.add(name + " " + phoneNumber);
    }

}

==> rounded_bordeeer.xml 文件用于实现视图的四舍五入 边界

<?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:layout_margin="@dimen/_10sdp"
    android:weightSum="3">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@drawable/rounded_bordeeer"
            android:backgroundTint="#FFC107"
            android:gravity="center"
            android:padding="@dimen/_4sdp"
            android:text="NAME"
            android:textColor="#FFFFFF"
            android:textSize="@dimen/_12ssp" />

        <TextView
            android:id="@+id/name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="@dimen/_5ssp"
            android:background="@drawable/rounded_bordeeer"
            android:backgroundTint="#FFC107"
            android:gravity="center"
            android:padding="@dimen/_4sdp"
            android:text="JOHN"
            android:textColor="#FFFFFF"
            android:textSize="@dimen/_12ssp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/_10ssp"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@drawable/rounded_bordeeer"
            android:backgroundTint="#4CAF50"
            android:gravity="center"
            android:padding="4dp"
            android:text="AGE"
            android:textColor="#FFFFFF"
            android:textSize="@dimen/_12ssp" />

        <TextView
            android:id="@+id/age"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="@dimen/_5ssp"
            android:background="@drawable/rounded_bordeeer"
            android:backgroundTint="#4CAF50"
            android:gravity="center"
            android:padding="4dp"
            android:text="25"
            android:textColor="#FFFFFF"
            android:textSize="@dimen/_12ssp" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"

        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/_10ssp"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@drawable/rounded_bordeeer"
            android:backgroundTint="#03A9F4"
            android:gravity="center"
            android:padding="4dp"
            android:text="PLACE"
            android:textColor="#FFFFFF"
            android:textSize="@dimen/_12ssp" />

        <TextView
            android:id="@+id/place"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="@dimen/_5ssp"
            android:background="@drawable/rounded_bordeeer"
            android:backgroundTint="#03A9F4"
            android:gravity="center"
            android:padding="4dp"
            android:text="INDIA"
            android:textColor="#FFFFFF"
            android:textSize="@dimen/_12ssp" />

    </LinearLayout>
</LinearLayout>