我想问一下当android wear处于环境模式时你会如何改变背景drawable?
这是我的代码
public void draw(Canvas canvas, Rect bounds,Context context) {
time.setToNow();
// canvas.drawColor(Color.parseColor("#e91e63"));
int width = bounds.width();
int height = bounds.height();
Resources resources = context.getResources();
if (shouldShowAmbient) {
backgroundDrawable = resources.getDrawable(R.drawable.ambient_domo);
} else {
backgroundDrawable = resources.getDrawable(R.drawable.domo);
}
mBackgroundBitmap = ((BitmapDrawable) backgroundDrawable).getBitmap();
// Draw the background, scaled to fit.
if (mBackgroundScaledBitmap == null
|| mBackgroundScaledBitmap.getWidth() != width
|| mBackgroundScaledBitmap.getHeight() != height) {
mBackgroundScaledBitmap = Bitmap.createScaledBitmap(mBackgroundBitmap,
width, height, true /* filter */);
}
canvas.drawBitmap(mBackgroundScaledBitmap, 0, 0, null);
String timeText = String.format(shouldShowSeconds ? TIME_FORMAT_WITH_SECONDS : TIME_FORMAT_WITHOUT_SECONDS, time.hour, time.minute, time.second);
float timeXOffset = computeXOffset(timeText, timePaint, bounds);
float timeYOffset = computeTimeYOffset(timeText, timePaint, bounds);
canvas.drawText(timeText, timeXOffset, timeYOffset, timePaint);
String dateText = String.format(DATE_FORMAT, time.monthDay, (time.month + 1), time.year);
float dateXOffset = computeXOffset(dateText, datePaint, bounds);
float dateYOffset = computeDateYOffset(dateText, datePaint);
canvas.drawText(dateText, dateXOffset, timeYOffset + dateYOffset, datePaint);
}
这是调用该方法的方式
@Override
public void onAmbientModeChanged(boolean inAmbientMode) {
super.onAmbientModeChanged(inAmbientMode);
watchFace.setAntiAlias(!inAmbientMode);
watchFace.setColor(Color.WHITE);
watchFace.showAmbient(inAmbientMode);
watchFace.setShowSeconds(false);
invalidate();
startTimerIfNecessary();
}
它总是绘制交互模式drawable。我不知道为什么它没有改变。