Chrome Custom Tabs更改了默认的关闭按钮不起作用

6 浏览
0 Comments

Chrome Custom Tabs更改了默认的关闭按钮不起作用

我正在尝试更改自定义Chrome标签操作栏上的默认关闭按钮。我已经尝试使用setCloseButtonIcon()进行设置。然而,默认的关闭按钮仍然显示。我想将关闭按钮更改为箭头。

我的代码如下:

public void openHomePage() {
    final CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
    builder.setToolbarColor(ContextCompat.getColor(getActivity(), R.color.primary));
    final Bitmap backButton = BitmapFactory.decodeResource(getResources(), R.drawable.ic_arrow_back_black_48dp);
    builder.setCloseButtonIcon(backButton);
    builder.setShowTitle(true);
    final CustomTabsIntent customTabsIntent = builder.build();
    customTabsIntent.launchUrl(getActivity(), Uri.parse(mTvHomepage.getText().toString()));
}

0
0 Comments

Chrome Custom Tabs change the default close button not working这个问题的出现的原因是,setCloseButtonIcon方法需要一个Bitmap类型的图标,但是从VectorDrawable中直接获取BitmapDrawable是不行的。

解决方法如下:

1. 从Drawable中可以直接获取BitmapDrawable,但是无法从VectorDrawable中直接获取BitmapDrawable

2. 可以使用svg格式的图片。可以从这里下载相关的svg图片。

3. 提供了以下两个方法来获取Bitmap

- getBitmapFromDrawable方法:从Drawable中获取Bitmap。如果DrawableBitmapDrawable类型,则直接返回BitmapDrawableBitmap;如果DrawableVectorDrawable类型,则调用getBitmapFromVectorDrawable方法进行转换;否则抛出异常。

- getBitmapFromVectorDrawable方法:从VectorDrawable中获取Bitmap。创建一个Bitmap对象,然后在该Bitmap上绘制VectorDrawable,最后返回该Bitmap

4. 可以通过调用builder.setCloseButtonIcon(getBitmapFromDrawable(this, R.drawable.ic_arrow_back_black_24px))来设置自定义的关闭按钮图标。

5. 可以参考Stack Overflow上的链接了解更多信息。

0
0 Comments

Chrome Custom Tabs change the default close button not working

Chrome Custom Tabs更改默认关闭按钮无效的问题出现的原因是使用了错误的图标大小。解决方法是使用24dp大小的PNG图标。

在Stack Overflow上,某些情况下使用24dp大小的图标,并且使用PNG格式的图标可以解决这个问题。使用48dp大小的图标不会更改默认关闭按钮为箭头图标,但使用24dp大小的图标可以成功更改为箭头图标。

可以从Material Design网站上下载24dp大小的箭头图标,并将其作为PNG格式的资源文件使用。只有24dp大小的PNG图标才能成功更改关闭按钮的图标,其他大小和格式的图标都不起作用。

某些情况下尝试使用SVG格式的图标,但并没有成功。只有使用24dp大小的PNG图标才能解决这个问题。

总结起来,要解决Chrome Custom Tabs更改默认关闭按钮无效的问题,需要使用24dp大小的PNG图标作为资源文件。其他大小和格式的图标都不起作用。

0
0 Comments

Chrome Custom Tabs change the default close button not working的问题出现的原因是使用了Google的库,并且图标的尺寸应该为24dp。

解决方法是使用BitmapFactory Options来实现:

BitmapFactory.Options options = new BitmapFactory.Options();
options.outWidth = 24;
options.outHeight = 24;
options.inScaled = true; //already default, just for illustration - ie scale to screen density (dp)
... = BitmapFactory.decodeResource(getResources(), R.drawable.ic_arrow_back_black_48dp, opts);

0