If you think the Android project GridListViewAdapters listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/**
* Copyright 2014-present Biraj Patel/*www.java2s.com*/
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain a
* copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/package com.birin.gridlistviewadaptersdemo.common;
import android.annotation.SuppressLint;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.widget.ImageView;
publicclass CharacterDrawable extends ColorDrawable {
privatechar character;
privateint color;
privatefinal Paint textPaint;
public CharacterDrawable(CharacterDrawableInfo info) {
super(info.color);
color = info.color;
character = info.newChar;
textPaint = new Paint();
textPaint.setColor(Color.BLACK);
textPaint.setStyle(Paint.Style.FILL);
textPaint.setTextAlign(Paint.Align.CENTER);
textPaint.setAntiAlias(true);
textPaint.setFakeBoldText(true);
}
@Override
publicvoid draw(Canvas canvas) {
super.draw(canvas);
// draw text
int width = canvas.getWidth();
int height = canvas.getHeight();
textPaint.setTextSize(height / 2);
canvas.drawText(String.valueOf(character), width / 2, height / 2
- ((textPaint.descent() + textPaint.ascent()) / 2), textPaint);
}
@Override
publicvoid setAlpha(int alpha) {
textPaint.setAlpha(alpha);
}
@Override
publicvoid setColorFilter(ColorFilter cf) {
textPaint.setColorFilter(cf);
}
@Override
publicint getOpacity() {
return PixelFormat.TRANSLUCENT;
}
publicvoid update(CharacterDrawableInfo info) {
if (info.newChar != character || info.color != color) {
character = info.newChar;
this.color = info.color;
setColor(color);
invalidateSelf();
}
}
@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
publicstaticvoid tagNewDrawableToImageView(ImageView imageview) {
CharacterDrawable drawable = new CharacterDrawable(
new CharacterDrawableInfo());
imageview.setTag(drawable);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
imageview.setBackground(drawable);
} else {
imageview.setBackgroundDrawable(drawable);
}
}
publicstaticvoid updateTaggedDrawableStateFromImageView(
ImageView imageview, CharacterDrawableInfo info) {
CharacterDrawable drawable = (CharacterDrawable) imageview.getTag();
drawable.update(info);
}
publicstaticclass CharacterDrawableInfo {
publicint color;
publicchar newChar;
}
}