안드로이드 개발의 사용자 정의 View Drawable을 통해 아이콘 그리기
3632 단어 안드로이드 학습
public class MyView extends View{
private float mCircleRadius;
private int defaultHeight;
private Drawable mIcon;
private Rect rect;
public MyView(Context context) {
super(context);
init();
}
private void init() {
defaultStepIndicatorNum = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, getResources().getDisplayMetrics());
mCircleRadius = 0.5f * defaultHeight;
mIcon = ContextCompat.getDrawable(getContext(), R.drawable.m);
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
setBackgroundColor(Color.TRANSPARENT);
//
mIcon.setBounds(rect);
mIcon.draw(canvas);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = (int) (defaultHeight*1.5);
if(MeasureSpec.UNSPECIFIED != MeasureSpec.getMode(heightMeasureSpec))
{
height = Math.min(height, MeasureSpec.getSize(heightMeasureSpec));
}
setMeasuredDimension(width,height);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
rect = new Rect((int) (getWidth()/2 - mCircleRadius), (int)(getHeight()/2-mCircleRadius) , (int) (getWidth()/2+ mCircleRadius), (int)(getHeight()/2+mCircleRadius));
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
안드로이드 개발의 사용자 정의 View Drawable을 통해 아이콘 그리기텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.