我的项目在tabLayout
上包含6个图标。它们全部以编程方式放入tabs
,而不是ImageView
中的layout
。现在,必须为平板电脑屏幕增加此图标的大小。
我尝试了很多事情;尝试增加图标的大小,尝试了tabItems的layout_ width
和layout_height
。但这一切都不起作用。
如何增加tabLayout上的图标大小?希望有人可以帮我这个忙。
Result_Activity.java
private Integer[] images;
Integer[] domesticImages = {
R.drawable.ic_directions_bus_black_24dp,
R.drawable.ic_flight_takeoff_black_24dp,
R.drawable.ic_directions_boat_black_24dp,
R.drawable.ic_train_black_24dp,
R.drawable.ic_hotel,
R.drawable.ic_rent_a_car
};
private Integer[] domesticImagesClicked = {
R.drawable.ic_directions_bus_clicked_24dp,
R.drawable.ic_flight_takeoff_clicked_24dp,
R.drawable.ic_directions_boat_clicked_24dp,
R.drawable.ic_train_clicked_24dp,
R.drawable.ic_hotel_clicked,
R.drawable.ic_rent_a_car_clicked
};
activity_result.xml
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_below="@+id/rl_Detail"
android:background="#F4E6CA"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:tabBackground="?attr/selectableItemBackgroundBorderless"
app:tabIndicatorColor="@android:color/transparent"
app:tabPaddingEnd="15dp"
app:tabPaddingStart="15dp">
<android.support.design.widget.TabItem
android:id="@+id/tab1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:saveEnabled="true" />
<android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="match_parent" />
<android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="match_parent" />
<android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="match_parent" />
<android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="match_parent" />
<android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</android.support.design.widget.TabLayout>
答案 0 :(得分:2)
如果您希望为不同的屏幕尺寸使用不同的图标尺寸,则可能需要以下任何一种操作:
1-用自己合适的尺寸制作不同的图像,并放入相应的文件夹中,因为android具有每种dpi密度的可绘制文件夹,请查看:Android Studio: Drawable Folder: How to put Images for Multiple dpi?
2-如果图标很简单,则可以使用矢量图标,因为它们可以更改其大小以适合您需要的任何屏幕尺寸。看看:https://developer.android.com/studio/write/vector-asset-studio
3-您可以检查设备是否为平板电脑,也可以通过编程方式更改图标的大小,具体取决于您添加图标的方式。您可以使用以下代码进行检查:
public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout & 0xF) >= 3;
}
或者您可以在此处检查执行此操作的不同方法:Determine if the device is a smartphone or tablet?
如果这些方法都不起作用,请提供官方的详细指南: https://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts
答案 1 :(得分:0)
您可以为平板电脑配置指定不同的资源集(可绘制文件夹)。
对于平板电脑,您将需要另一个名为 drawable-sw600dp 的可绘制文件夹。
类似于supporting different screen sizes和alternatice app resources中定义的
另一种方法是为标签创建自定义视图。
您可以为平板电脑的“自定义”标签创建布局。
然后以编程方式对布局进行充气,并使用tab.setCustomView(customView)
进行设置。
您只能在平板电脑上执行此操作。
答案 2 :(得分:0)
您可以使用
来增加图标的大小memset(
像your_custom_view.xml这样创建一个新的布局资源,
for (int i = 0; i < tabLayout.getTabCount(); i++) {
TabLayout.Tab tab = tabLayout.getTabAt(i);
switch(i){
case 0: if (tab != null){
tab.setIcon(R.drawable.your_icon_1)
.setText(R.string.your_text1);
}break;
case 1: if (tab != null){
tab.setIcon(R.drawable.your_icon_2)
.setText(R.string.your_text2);
}break;
case 2: if (tab != null){
tab.setIcon(R.drawable.your_icon_3)
.setText(R.string.your_text3);
}break;
case 3: if (tab != null){
tab.setIcon(R.drawable.your_icon_4)
.setText(R.string.your_text4);
}break;
}
if (tab != null) tab.setCustomView(R.layout.your_custom_view);
}