ant*_*009 15 android chrome-custom-tabs
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()));
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试更改自定义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()));
}
Run Code Online (Sandbox Code Playgroud)
提前谢谢了,
Fan*_*ock 20
我有一个观察.上个月,当搜索SO以查找各种Chrome自定义选项卡问题时,我发现这个答案建议使用24dp大小的图标,并且还发现这个问题说它可以正常使用PNG.
我已经使用后退箭头图标,从检查你的代码在这里.
当我使用"ic_arrow_back_black_48dp"时,它没有将默认关闭按钮更改为箭头(参见左图).
final Bitmap backButton = BitmapFactory.decodeResource(getResources(), R.drawable.ic_arrow_back_black_48dp);
Run Code Online (Sandbox Code Playgroud)
但是当我使用"ic_arrow_back_black_24dp"时,它完全将默认关闭按钮更改为箭头(参见右图).
final Bitmap backButton = BitmapFactory.decodeResource(getResources(), R.drawable.ic_arrow_back_black_24dp);
Run Code Online (Sandbox Code Playgroud)
因为它对于我来说非常完美,你也应该尝试"24dp"大小重新箭头图标,从这里,而不是"48dp"大小重新箭头图标.
屏幕截图:[Device:ASUS_Z00UD; 操作系统:6.0.1]
假设您正在使用Google库而不是相关的库,那么图标大小应为24dp,如此处所述.
这可以通过BitmapFactory选项实现:
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);
Run Code Online (Sandbox Code Playgroud)
您可以直接获得BitmapDrawable由Drawable而不是从VectorDrawable为setCloseButtonIcon需要@NonNull Bitmap icon
您还可以如下使用svg。从此处下载svg ic_arrow_back_black_24px
以下方法不言自明:
private static Bitmap getBitmapFromDrawable(Context context, int drawableId) {
Drawable drawable = ContextCompat.getDrawable(context, drawableId);
if (drawable instanceof BitmapDrawable) {
return ((BitmapDrawable) drawable).getBitmap();
} else if (drawable instanceof VectorDrawable) {
return getBitmapFromVectorDrawable((VectorDrawable) drawable);
} else {
throw new IllegalArgumentException("Unable to convert to bitmap");
}
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private static Bitmap getBitmapFromVectorDrawable(VectorDrawable vectorDrawable) {
Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(),
vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
vectorDrawable.draw(canvas);
return bitmap;
}
Run Code Online (Sandbox Code Playgroud)
您可以将以上内容用作:
builder.setCloseButtonIcon(getBitmapFromDrawable(this, R.drawable.ic_arrow_back_black_24px));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4129 次 |
| 最近记录: |