如何根据TextView
的百分比填充图像。并且它应该根据TextView
的百分比进行更改。在下面的代码中,高度布局正在改变,但我希望图像的颜色应该根据百分比(textview(电池)的值)而改变。
CODE:
private void displayData(String data) {
if (data != null) {
battery.setText(data);
int x=Integer.parseInt(battery.getText().toString());
image_level.getLayoutParams().height = x;
}
}
这是我的TextView
我得到的数据为100或者大约有60这样的数据。我的ImageView
应该填充颜色和显示的那么高的值。
<TextView android:id="@+id/batterylevel"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:text="BRV Battery"
android:layout_below="@+id/sos"/>
<ImageView
android:id="@+id/image_level"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:src="@drawable/ic_launcher"
android:contentDescription="@string/app_name"/>
在布局中我确实喜欢这个我应该应用任何动画或只是设置任何选项请告诉我。
如果电池TextView
为60,则应将蓝色填充至60,将剩余的40填充为白色。
答案 0 :(得分:1)
你需要使用Clip drawable。
见这里:
http://developer.android.com/guide/topics/resources/drawable-resource.html#Clip
例如在您的代码中:
private void displayData(String data) {
if (data != null) {
battery.setText(data);
int x=Integer.parseInt(battery.getText().toString());
ClipDrawable drawable = (ClipDrawable) image_level.getDrawable();
drawable.setLevel(100 * x);
}
}
在你的布局中:
<ImageView
android:id="@+id/image_level"
android:background="@android:color/white"
android:src="@drawable/clip"
android:layout_height="50dp"
android:layout_width="match_parent" />
对于你的drawable / clip.xml:
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@color/myBlueColor"
android:clipOrientation="horizontal"
android:gravity="left" />
对于colors.xml中的myBlueColor:
<color name="myBlueColor">#0383f3</color>
答案 1 :(得分:0)
以下我的方法获取电池百分比并将该值传递给imagelevel按钮以显示级别。
private void displayData(String data) {
Log.v("______________________No serives_______________",data );
if (data != null) {
battery.setText(data);
int x=Integer.parseInt(battery.getText().toString());
image_level.getLayoutParams().height = x*2;
Log.v("______BATERY LEVEL_________", "__IN DISPLAYDATA()___DCA__________"+data);
}
以下代码在布局中显示。
<RelativeLayout
android:id="@+id/image_layout"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_below="@+id/linearlayout"
android:background="@drawable/ic_launcher"
>
<Button
android:id="@+id/image_level"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:background="#8099FFFF"
android:contentDescription="@string/app_name"/>
答案 2 :(得分:-1)
在您的可绘制文件夹中创建图层列表,如下所示
doubleshade.xml
<item android:drawable="@color/white"/>
<item android:right="60dp">
<shape android:shape="rectangle" >
<solid android:color="@color/blue" />
</shape>
</item>
在您的代码中根据条件
应用此形状ImageView img = (ImageView) findViewById(R.id.imageView);
TextView textview = (TextView) findViewById(R.id.textView);
int per = Integer.parseInt(textview.getText().toString());
if(per >= 60 )
{
img.setImageResource(R.drawable.doubleshade);
}