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中,将自定义视图添加为
(插入您自己的包名)