我有一个项目,我必须在其中填充一杯啤酒和泡泡&嘶嘶声效应。
我正在使用图书馆:https://github.com/andyb129/BeerProgressView &安培;在实现该库之后,动画不适用于基于臂的设备,即arm64-v8a& armeabi-V7A。
这是我的代码: https://drive.google.com/open?id=0B5kjnHTF2m1DWVNfQWtpYmlielk
我尝试将库添加为模块,并尝试使用gradle添加库。
此外,还在GitHub页面上询问了问题:https://github.com/andyb129/BeerProgressView/issues/7
示例代码正在运行: https://drive.google.com/open?id=0B5kjnHTF2m1DMXBIR2hwdUVleFU
如果有人能指出我的错误,我将非常感谢你。
要显示进度:自定义视图代码为:
public void setBeerProgress(int beerProgress) {
mBeerProgress = beerProgress;
if (mBeerProgress > mMax){
mBeerProgress = mMax;
}
if (mBeerProgress < 0){
mBeerProgress = 0;
}
float pecent = mBeerProgress * 1.0f / mMax;
mBeerProgressHeight = pecent * mBeerHeight;
invalidate();
}
在上面的代码中,mBeerHeight始终为0.
所以我提前搜索,
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mBeerWidth = (int) (getWidth() - mHaftBorderRadius);
Log.d(TAG, "Pawan getHeight(): "+getHeight());
mBeerHeight = (int) (getHeight() - mHaftBorderRadius);
mBorderRectF.set(mHaftBorderRadius, mHaftBorderRadius, mBeerWidth, mBeerHeight);
}
这里,在上面的代码中,getHeight()始终为0 ....: - (
答案 0 :(得分:0)
终于得到了答案:
参考: getWidth() and getHeight return zero after onMeasure() (specific devices)
最新代码:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
// mBeerWidth = (int) (getWidth() - mHaftBorderRadius);
mBeerWidth = (int) (getMeasuredWidth() - mHaftBorderRadius);
Log.d(TAG, "Pawan getMeasuredHeight(): "+getMeasuredHeight());
// mBeerHeight = (int) (getHeight() - mHaftBorderRadius);
mBeerHeight = (int) (getMeasuredHeight() - mHaftBorderRadius);
mBorderRectF.set(mHaftBorderRadius, mHaftBorderRadius, mBeerWidth, mBeerHeight);
}
getMeasureWidth()&amp; getMeasureWidth()将为您提供正确的宽度和宽度。高度。