首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用程序崩溃是因为自定义视图

应用程序崩溃是因为自定义视图
EN

Stack Overflow用户
提问于 2014-06-12 09:26:15
回答 1查看 283关注 0票数 0

我有简单的自定义视图,应该绘制进度条的缩放数字,当我将它添加到布局中时,它会导致应用程序崩溃。

代码语言:javascript
复制
public class ScaleBar extends View {

    Paint linePaint = new Paint();

    public ScaleBar(Context context) {
        super(context);
        initDrawingTool();
    }

    private void initDrawingTool(){

        linePaint.setColor(Color.WHITE);
    }

    @Override
public void onDraw(Canvas canvas) {
    int skaicius = 9;
    int barHeight = VerticalProgressBar.getVariable();
    for(int i = barHeight/10; i < barHeight-barHeight/10 ; i+=barHeight/10){
        String testString = Integer.toString(skaicius);
        canvas.drawText(testString, getWidth()/2-3, i, linePaint);
        skaicius--;
    }
        canvas.drawText("10", getWidth()/2-10, 20, linePaint);
        canvas.drawText("0", getWidth()/2-3, barHeight, linePaint); 
    }
}

布局XML:

代码语言:javascript
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <View.VerticalProgressBar
        android:id="@+id/verticalRatingBar1"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginLeft="5dp"
        android:progress="10"
        android:progressDrawable="@drawable/bluebar" />

    <View.ScaleBar
        android:id="@+id/scaling"
        android:layout_width="30dp"
        android:layout_height="match_parent" />

    <View.VerticalProgressBar
        android:id="@+id/verticalRatingBar2"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="10dp"
        android:layout_height="match_parent"
        android:progressDrawable="@drawable/bluebar"
        android:progress="20" />
</LinearLayout>
  • 它为什么会坠毁?
  • 如何在中间绘制缩放图?如果我做了这个getWidth()/2,我得到:

10 9 8

我要以所有数字为中心。

提前谢谢你

编辑:左边是我在tablet 10.1中看到的,右边是我在Eclipse中看到的。第9刻度行和1缺失和9接近10

  • 在中间画数字怎么样?或者我必须手动执行getWidth()/2-10

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-12 09:27:56

我有简单的自定义视图,应该绘制进度条的缩放数字,当我将它添加到布局中时,它会导致应用程序崩溃。

你错过了布局的构造函数,

代码语言:javascript
复制
 public ScaleBar(Context context, AttributeSet attrs) {
        super(context, attrs);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24180870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档