【问题标题】:How to set the tablayout icon size for tablets如何设置平板电脑的 tablayout 图标大小
【发布时间】:2019-08-17 07:06:58
【问题描述】:

如何设置平板电脑的标签图标大小我做了很多研究,尝试了很多方法,但无法使其适应我的布局。手机屏幕正常,但平板电脑屏幕上的“7”“10”图标尺寸仍然很小。

public class MainActivity extends AppCompatActivity  {

private TabLayout tabLayout;
private ViewPager viewPager;

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

    viewPager = (ViewPager) findViewById(R.id.viewpager);
    setupViewPager(viewPager);

    tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);
    setupTabIcons();

我以编程方式获取图标。

}

private void setupTabIcons() {

    TextView tabOne = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
    tabOne.setText(R.string.Scanner);
    tabOne.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_image, 0, 0);
    tabLayout.getTabAt(0).setCustomView(tabOne);


    TextView tabTwo = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
    tabTwo.setText(R.string.Create);
    tabTwo.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.create, 0, 0);
    tabLayout.getTabAt(1).setCustomView(tabTwo);

    TextView tabThree = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
    tabThree.setText(R.string.History);
    tabThree.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_history, 0, 0);
    tabLayout.getTabAt(2).setCustomView(tabThree);

    TextView tabFour = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
    tabFour.setText(R.string.Settings);
    tabFour.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_settings, 0, 0);
    tabLayout.getTabAt(3).setCustomView(tabFour);

}

}

我的 activity_main 布局

 <com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">


    <com.google.android.material.tabs.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="@dimen/_45sdp"
        app:tabGravity="fill"
        app:tabMode="fixed" />

</com.google.android.material.appbar.AppBarLayout>

custom_tab 布局

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
android:gravity="center_horizontal"
android:textColor="@color/custom_tabtext1"
android:textSize="@dimen/_9ssp"
/>

【问题讨论】:

    标签: java android icons


    【解决方案1】:

    我认为你可以支持平板电脑使用 3 路。

    为平板电脑支持创建 3 个布局文件的第一种方法:-

    res/layout/main_activity.xml           # For handsets (smaller than 600dp)
    res/layout-sw600dp/main_activity.xml   # For 7” tablets (600dp wide and bigger)
    res/layout-sw720dp/main_activity.xml   # For 10” tablets (720dp wide and bigger)
    

    为平板电脑支持创建 3 维文件的第二种方法:-

    values/dimens.xml              # For handsets (smaller than 600dp)
    values-sw600dp/dimens.xml      # For 7” tablets (600dp wide and bigger)
    values-sw720dp/dimens.xml      # For 10” tablets (720dp wide and bigger)
    

    使用“Sdp”库支持平板电脑的第三种方法:-

    https://github.com/intuit/sdp

    【讨论】:

    • 我的图标布局不能像你说的那样做,因为 main_activity.xml 不是。我在 main_activity 类中以编程方式绘制图标,因此在 xml 中创建不同的屏幕尺寸不起作用。感谢您的回答。是否有程序化解决方案?
    猜你喜欢
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 2012-12-18
    • 2020-12-24
    • 2015-04-25
    • 1970-01-01
    相关资源
    最近更新 更多