如何根据android中textview的百分比填充图像的颜色

时间:2014-04-11 07:00:28

标签: android

如何根据textview的百分比填充图像。它应该根据textview的百分比改变。下面是我的代码所以请检查。

              private void displayData(String data) {
    if (data != null) { 
        battery.setText(data);
    }
    }

这是我的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:layout_toRightOf="@+id/batterylevel"
android:layout_below="@+id/sos"
android:layout_above="@+id/portbearmode"

android:alpha="1"
android:adjustViewBounds="true"

 android:contentDescription="@string/app_name"/>

在布局中我确实喜欢这个我应该应用任何动画或只是设置任何选项请告诉我。 如果电池textview为60,则应将蓝色填充至60,将剩余的40填充为白色。

3 个答案:

答案 0 :(得分:1)

如果你想改变不透明度,你可以根据textview usinf setalpha方法中的值设置不透明度。

我有一个好主意来解决这个问题,只需尝试自己。

将您的imageview设置为线性/相对布局,将高度设置为您要为图像视图指定的最大宽度。

然后最初将图像视图的高度设置为零

然后,根据textview的值,以编程方式设置图像视图的高度

 int x=Integer.parseInt(battery.getText().toString());

 image_level.getLayoutParams().height = x;

答案 1 :(得分:0)

请参阅现在我硬编码的u可以将其更改为动态

package com.example.testapp;

import android.app.Activity;
import android.os.Bundle;
 import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity {
Button image_level;
EditText battery_level;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

 battery_level = (EditText) findViewById(R.id.batterylevel);
    image_level = (Button) findViewById(R.id.image_level);
    battery_level.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            if(!battery_level.getText().toString().equals("")){
 x =                   Integer.parseInt(battery_level.getText().toString());
            }
            image_level.getLayoutParams().height = (int) (1.5 * x);

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });

}


}

现在是xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
    android:id="@+id/batterylevel"
    android:layout_width="wrap_content"
    android:layout_height="150dp"
    android:layout_below="@+id/sos"
     android:inputType="number"
    android:text="10" />

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="100dp"
    android:layout_above="@+id/portbearmode"
    android:layout_below="@+id/sos"
    android:layout_toRightOf="@+id/batterylevel"
    android:background="#ffffff" >

    <Button
        android:id="@+id/image_level"
        android:layout_width="wrap_content"
        android:layout_height="100dp"
        android:layout_alignParentBottom="true"
        android:background="#ff0000"
        android:contentDescription="@string/app_name" />
</RelativeLayout>

</RelativeLayout>

答案 2 :(得分: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"/>