Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何绘制高度设置为“填充父对象”的矩形?_Android - Fatal编程技术网

Android 如何绘制高度设置为“填充父对象”的矩形?

Android 如何绘制高度设置为“填充父对象”的矩形?,android,Android,我试图在一个应用程序中实现一个指示器,显示外部设备的音量级别。为此,我创建了一个布局,根据所述设备的当前体积,应该在运行时绘制矩形子对象 我怎样才能做到这一点呢?具体来说,我希望绘制这些矩形,其高度与其父视图的高度相匹配。使用ProgressBar或SeekBar(禁用触摸)视图,并使用其方法setProgress(int值)进行更新。我认为这将有助于您的任务。实际上这很简单,只要让一些孩子的宽度相等,就可以做一个线性布局 import java.util.ArrayList; import

我试图在一个应用程序中实现一个指示器,显示外部设备的音量级别。为此,我创建了一个布局,根据所述设备的当前体积,应该在运行时绘制矩形子对象


我怎样才能做到这一点呢?具体来说,我希望绘制这些矩形,其高度与其父视图的高度相匹配。

使用ProgressBar或SeekBar(禁用触摸)视图,并使用其方法setProgress(int值)进行更新。

我认为这将有助于您的任务。实际上这很简单,只要让一些孩子的宽度相等,就可以做一个
线性布局

import java.util.ArrayList;

import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class CustomView extends LinearLayout {
    private ArrayList<ImageView> views = new ArrayList<ImageView>();

    public CustomView(Context context, AttributeSet attributeSet) {
        super(context, attributeSet);
        init(context);
    }

    public CustomView(Context context) {
        super(context);
        init(context);
    }

    private void init(Context context) {
        this.setOrientation(LinearLayout.HORIZONTAL);
        for (int i = 0; i < 10; i++) {
            ImageView loadingPiece = new ImageView(context);
            loadingPiece.setBackgroundColor(Color.RED);
            this.addView(loadingPiece);
            LayoutParams layoutParams = (LayoutParams)loadingPiece.getLayoutParams();
            layoutParams.weight = 1.0f;
            layoutParams.height = this.getHeight();
            layoutParams.width = 0;
            loadingPiece.setLayoutParams(layoutParams);
            views.add(loadingPiece);
        }
    }

    public void setPercentage(int amountToShow) {
        for (int i = 0; i < views.size(); i++) 
            if (i < amountToShow)
                views.get(i).setVisibility(View.VISIBLE);
            else
                views.get(i).setVisibility(View.INVISIBLE);
    }
}
import java.util.ArrayList;
导入android.content.Context;
导入android.graphics.Color;
导入android.util.AttributeSet;
导入android.view.view;
导入android.widget.ImageView;
导入android.widget.LinearLayout;
公共类CustomView扩展了LinearLayout{
私有ArrayList视图=新建ArrayList();
公共自定义视图(上下文上下文,属性集属性集){
super(上下文、属性集);
init(上下文);
}
公共自定义视图(上下文){
超级(上下文);
init(上下文);
}
私有void init(上下文){
此.setOrientation(LinearLayout.HORIZONTAL);
对于(int i=0;i<10;i++){
ImageView加载件=新ImageView(上下文);
装载件.立根基色(颜色.红色);
此.addView(加载件);
LayoutParams LayoutParams=(LayoutParams)loadingPiece.getLayoutParams();
layoutParams.weight=1.0f;
layoutParams.height=this.getHeight();
layoutParams.width=0;
加载件。setLayoutParams(layoutParams);
视图。添加(加载件);
}
}
公共无效设置百分比(int amountToShow){
对于(int i=0;i

希望有帮助。

如果您所问的是与此图中的条形图类似的内容,则应该很容易制作(不知道您是否希望与这些条形图进行交互)。是否有方法覆盖它们的进度绘图功能?是的。只要将它们放在eclipse中的XML布局中,您就会看到其中的选项。请原谅我的无知。我想尝试一下,但您如何指定将此视图添加到主页的位置?@litemode在XML中,将
自定义视图添加为
(插入您自己的包名)