singleLine属性
来源:互联网 发布:ubuntu 镜像站 编辑:程序博客网 时间:2024/05/22 02:01
自定义了一个带进度的button,需要单行显示,但是遇到一个很奇怪的问题:若这个button设置了android:singleLine="true"时,便不能正常画出绿色的进度背景。查了些资料说singleLine属性已经过时,建议使用lines属性,后来改为android:lines="1",绘制便正常了。原因还不清楚。先记下来。
<com.gionee.filemanager.apk.view.ProgressButton
android:id="@+id/button"android:layout_width="70dp"
android:layout_height="30dp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:focusable="false"
android:text="@string/hot_app_btn_download"
android:lines="1"
android:textSize="12dp" />
<com.gionee.filemanager.apk.view.ProgressButton
android:id="@+id/button"
android:layout_width="70dp"
android:layout_height="30dp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:focusable="false"
android:text="@string/hot_app_btn_download"
android:singleLine="true"
android:textSize="12dp" />
自定义的带进度的button代码如下:
public class ProgressButton extends AmigoButton {
private boolean mProgressEnable = true;
private long mMax = 100;
private int mProgress = 0;
private Paint mPaint;
private int corner;
private int border;
public void setProgressEnable(boolean progressEnable) {
mProgressEnable = progressEnable;
}
public void setMax(long max) {
mMax = max;
}
public void setProgress(int progress) {
mProgress = progress;
invalidate();
}
public ProgressButton(Context context) {
super(context);
init();
}
public ProgressButton(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
mPaint = new Paint();
mPaint.setColor(getResources().getColor(R.color.hot_app_progress_btn_border_color, null));
corner = getResources().getDimensionPixelSize(R.dimen.corner);
border = getResources().getDimensionPixelSize(R.dimen.progressbtn_border);
}
@Override
protected void onDraw(Canvas canvas) {
if(mProgressEnable && mProgress > 0){
RectF oval;
if (mProgress < corner) {
oval = new RectF(0, corner - mProgress, (getWidth() * mProgress) / mMax, getHeight()-(corner-mProgress));
canvas.drawRoundRect(oval, mProgress, mProgress, mPaint);
} else {
oval = new RectF(0, 0, (getWidth() * mProgress) / mMax, getHeight());
canvas.drawRoundRect(oval, corner, corner, mPaint);
}
}
super.onDraw(canvas);
}
}
- singleLine属性
- android TextView SingleLine属性过时的问题
- 奇怪的问题关于TextView的属性android:singleLine
- 布局中singleLine属性导致viewpager滑动失效
- android:singleLine
- android:singleLine
- android:singleLine
- android:singleLine="true"
- android singleline ...显示不全
- Android singleline 过期问题
- android:singleLine="true" 是什么意思?
- android:singleLine="true"失效
- android:singleLine ="true" 过时
- 正则表达式中的Multiline和Singleline
- singleLine="true" 和 maxLines="1"
- [ios2]tableView去除空行的singleLine
- Android单行显示ellipse和singleLine
- EditText中singleLine过期替代方法
- 跨域问题
- NodeJs之TypeScript开发环境--VS Code
- docker的简单使用
- lua关于require和package.loaded常被忽略的故事
- Jupyter Notebook导出成pdf
- singleLine属性
- JavaScript文件获取与提交
- 文章标题fda
- iOS 动画篇----CAAnimation
- 简单的解决EOF多读取一行的问题
- Oracle SQL语句
- 选择排序算法(python实现)
- JNI:Java调用C函数打印hello,world
- 第2章 在HTML 中使用JavaScript