我编写了一个包含自定义MapFragments的android库项目,该项目基于Google Maps for Android v2 API.在Google API控制台中,我已使用调试/签名证书注册了库的包名称.
我需要创建使用此库作为公共代码库的各种应用程序,我想知道是否有一种方法仍然可以使用库的MapFragments,而无需在Google API控制台中添加每个应用程序的包名称.我需要这个,因为我想自动创建应用程序(使用Jenkins),我不想要任何手动步骤,例如登录API控制台并注册包名称.
到目前为止,我还没有找到办法做到这一点.通配符不起作用(例如,将com.mycompany.*作为控制台中的包名称),如果我没有显式注册每个应用程序的包名称,则不会加载地图.
是否有可能以某种方式使MapFragments查找库的单个api密钥/包,而不是应用程序?
我需要制作带圆角和内阴影的缩略图.通常我正在制作带有9个补丁的ImageView帧,这对我来说效果很好,但这次我需要的效果需要在图像顶部绘制内部阴影(而不仅仅是它周围).这导致我扩展ImageView类并覆盖onDraw()方法.
public class ThumbnailImageView extends ImageView {
Run Code Online (Sandbox Code Playgroud)
经过很多教程(感谢StackOverflow!),我最终得到了onDraw()方法的代码:
@Override
protected void onDraw(Canvas canvas) {
if (mBitmap == null) {
return;
}
int radius = 4;
int padding = 2;
int bleed = 2;
RectF frame = new RectF(padding, padding, getWidth() - padding, getHeight() - padding);
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setColor(0xFF000000);
canvas.drawRoundRect(frame, radius, radius, mPaint);
Shader bitmapShader = new BitmapShader(mBitmap, TileMode.CLAMP, TileMode.CLAMP);
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setColor(0xFF000000);
mPaint.setMaskFilter(new BlurMaskFilter(bleed, Blur.INNER));
mPaint.setShader(bitmapShader);
canvas.drawRoundRect(frame, radius, radius, mPaint);
}
Run Code Online (Sandbox Code Playgroud)
我基本上做的是先绘制一个黑色的圆角矩形,然后绘制一个带有渐变边缘(带有BlurMaskFilter)的圆角位图.结果就是我想要的:
mBitmap值在ImageView构造函数中初始化,如下所示:
mDrawable = getDrawable(); …Run Code Online (Sandbox Code Playgroud)