Permite a construção do layout baseado em cartões. Para mais detalhes sobre Card View: GOOGLE DEVELOPERS. Criar um layout baseado em cards. Disponível em: https://developer.android.com/guide/topics/ui/layout/cardview?hl=pt-br. Acesso: 14 de jul. 2025.
Exemplos práticos:
-
colors.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="black">#FF000000</color> <color name="white">#FFFFFFFF</color> <color name="red">#D31B1B</color> <color name="green">#4CAF50</color> <color name="blue">#03A9F4</color> </resources>
-
main_activity.xml
<?xml version="1.0" encoding="utf-8"?> <ScrollView 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" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" app:cardBackgroundColor="@color/green" app:cardCornerRadius="20dp" app:cardElevation="10dp" app:cardUseCompatPadding="true"> <ImageView android:id="@+id/imgBolo" android:layout_width="200dp" android:layout_height="200dp" android:layout_gravity="center" android:layout_margin="10dp" android:src="@drawable/bolo_de_fuba" /> </androidx.cardview.widget.CardView> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" app:cardBackgroundColor="@color/red" app:cardCornerRadius="20dp" app:cardElevation="10dp" app:cardUseCompatPadding="true"> <ImageView android:id="@+id/imgCafe" android:layout_width="200dp" android:layout_height="200dp" android:layout_gravity="center" android:layout_margin="10dp" android:src="@drawable/coffee" /> </androidx.cardview.widget.CardView> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" app:cardBackgroundColor="@color/blue" app:cardCornerRadius="20dp" app:cardElevation="10dp" app:cardUseCompatPadding="true"> <ImageView android:id="@+id/imgPizza" android:layout_width="200dp" android:layout_height="200dp" android:layout_gravity="center" android:layout_margin="10dp" android:src="@drawable/book__1_" /> </androidx.cardview.widget.CardView> </LinearLayout> </ScrollView>
-
MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
Recycler View
Recurso que permite criar listas dinâmicas com mais eficiência e economia de recursos. Para mais detalhes sobre Recycler View: GOOGLE DEVELOPERS. Criar listas dinâmicas com o Recycler View. Disponível em: https://developer.android.com/guide/topics/ui/layout/recyclerview?hl=pt-br. Acesso: 14 de jul. 2025.
Exemplos práticos:
-
colors.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="black">#FF000000</color> <color name="white">#FFFFFFFF</color> <color name="red">#D92121</color> <color name="green">#8BC34A</color> <color name="blue">#2196F3</color> </resources>
-
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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" tools:context=".MainActivity"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycleView" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> </androidx.constraintlayout.widget.ConstraintLayout>
-
item_layout.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" app:cardBackgroundColor="@color/blue" app:cardCornerRadius="8dp" app:cardElevation="8dp" app:cardUseCompatPadding="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="10dp"> <ImageView android:id="@+id/imageView" android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center_horizontal" android:src="@mipmap/ic_launcher" /> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Texto Exemplo" android:textAppearance="@style/TextAppearance.AppCompat.Medium" android:gravity="center" android:paddingTop="8dp"/> </LinearLayout> </androidx.cardview.widget.CardView>
-
ItemModel.java
public class ItemModel { private int imagem; private String texto; public ItemModel(int imagem, String texto) { this.imagem = imagem; this.texto = texto; } public int getImagem() { return imagem; } public void setImagem(int imagem) { this.imagem = imagem; } public String getTexto() { return texto; } public void setTexto(String texto) { this.texto = texto; } @Override public String toString() { return "ItemModal{" + "imagem=" + imagem + ", texto='" + texto + '\'' + '}'; } }
-
ItemAdapter.java
import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.ViewHolder> { private Context context; private ArrayList<ItemModel> itemModelArrayList; private OnItemClickListener listener; public ItemAdapter(Context context, ArrayList<ItemModel> itemModelArrayList, OnItemClickListener listener) { this.context = context; this.itemModelArrayList = itemModelArrayList; this.listener = listener; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item_layout, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { ItemModel item = itemModelArrayList.get(position); holder.imageView.setImageResource(item.getImagem()); holder.textView.setText(item.getTexto()); holder.itemView.setOnClickListener(v -> { if (listener != null) { listener.onItemClick(item); } }); } @Override public int getItemCount() { return itemModelArrayList.size(); } public static class ViewHolder extends RecyclerView.ViewHolder { ImageView imageView; TextView textView; public ViewHolder(@NonNull View itemView) { super(itemView); imageView = itemView.findViewById(R.id.imageView); textView = itemView.findViewById(R.id.textView); } } public interface OnItemClickListener { void onItemClick(ItemModel item); } }
-
ItemData.java
import java.util.ArrayList; public class ItemData { public static ArrayList<ItemModel> getItems() { ArrayList<ItemModel> itemList = new ArrayList<>(); itemList.add(new ItemModel(R.mipmap.ic_launcher, "Item 1")); itemList.add(new ItemModel(R.mipmap.ic_launcher, "Item 2")); itemList.add(new ItemModel(R.mipmap.ic_launcher, "Item 3")); return itemList; } }
-
MainActivity.java
import android.os.Bundle; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; private ItemAdapter adapter; private ArrayList<ItemModel> itemList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = findViewById(R.id.recycleView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); itemList = ItemData.getItems(); adapter = new ItemAdapter(this, itemList, new ItemAdapter.OnItemClickListener() { @Override public void onItemClick(ItemModel item) { Toast.makeText(MainActivity.this, "Clicou em: " + item.getTexto(), Toast.LENGTH_SHORT).show(); } }); recyclerView.setAdapter(adapter); } }