Tôi muốn tạo một thanh công cụ trong ứng dụng của mình và tôi đang tự hỏi chiều cao tiêu chuẩn cho thanh công cụ trong Android là bao nhiêu?
Tôi muốn nó đủ lớn cho một ngón tay, nhưng không lớn. Có kích thước tiêu chuẩn không?
Câu trả lời:
Tốt nhất nên sử dụng ?attr/actionBarSize
như @Jaison Brooks đã nhận xét.
Trong nguyên tắc vật liệu , chiều cao đề xuất là 56dp:
Thanh công cụ: 56dp
Kích thước tối thiểu được đề xuất cho các phần tử có thể chạm vào là 48 dp, hãy xem trang này để biết các số liệu chi tiết hơn.
android:minHeight="?attr/actionBarSize"
.
Ngoài câu trả lời @ vedant1811, bạn có thể lấy theo chương trình actionBarSize
từ các tập tin:
TypedValue tv = new TypedValue();
if (context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
{
actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, context.getResources().getDisplayMetrics());
}
Bạn có thể sử dụng phương pháp sau để lấy chiều cao AppBar theo chương trình
private static final int DEFAULT_TOOLBAR_HEIGHT = 56;
private static int toolBarHeight = -1;
public static int getToolBarHeight(Context context) {
if (toolBarHeight > 0) {
return toolBarHeight;
}
final Resources resources = context.getResources();
final int resourceId = resources.getIdentifier("action_bar_size", "dimen", "android");
toolBarHeight = resourceId > 0 ?
resources.getDimensionPixelSize(resourceId) :
(int) convertDpToPixel(DEFAULT_TOOLBAR_HEIGHT);
return toolBarHeight;
}
public static float convertDpToPixel(Context context, float dp) {
float scale = context.getResources().getDisplayMetrics().density;
return dp * scale + 0.5f;
}
Đối với điện thoại là 56dp
như vậy và đối với các thiết bị lớn như máy tính bảng mà bạn có nhiều không gian hơn thì có thể64dp
bạn có thể sử dụng tiện ích thanh công cụ đã tồn tại trong android và đặt chiều cao wrap_content, vì vậy sẽ tốt hơn nếu bạn có được kích thước mặc định đi kèm với nó.
đây
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:background="@color/dark_cerulean">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingEnd="16dp"
android:paddingStart="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="end"
android:gravity="end"
android:layout_marginEnd="16dp"
android:textColor="@color/white"
android:id="@+id/toolbar_title" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image1"
android:id="@+id/image"/>
</LinearLayout>
</android.support.v7.widget.Toolbar>