微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

imageview 不显示,重量和高度为 0

如何解决imageview 不显示,重量和高度为 0

您好,感谢您花时间阅读本文。虽然我有 C# 和 C++ 的经验,但我是 Android 的初学者。我目前正在生成一个带有按钮的 qr,该按钮应该将不可见的图像视图变为可见。这是我的 xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ChargeActivity">

    <include layout="@layout/toolbar" />

    <EditText
        android:id="@+id/currency_amount"
        android:layout_width="200dp"
        android:layout_height="40dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="272dp"
        android:inputType="numberDecimal"
        android:hint="Ingrese el monto"
        app:layout_anchor="@+id/include"
        app:layout_anchorGravity="center" />

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="-143dp"
        android:layout_marginEnd="-12dp"
        android:layout_marginBottom="3dp" />


    <Button
        android:id="@+id/generateqr_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:gravity="center"
        android:onClick="onClick"
        android:text="Generar QR"
        app:layout_anchor="@+id/include"
        app:layout_anchorGravity="center" />

    <ListView
        android:id="@+id/transactions"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="19dp" />

    <ImageView
        android:id="@+id/qr_image"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_centerInParent="true"
        />
</RelativeLayout>

这是我的 java

public class ChargeActivity extends AppCompatActivity {

    public static final String ARG_USER = "USER";
    String user = "";
    private Bitmap bitmap;
    private ImageView qrImage;
    private String inputValue;
    private EditText amount;
    private ListView transactions;

    private Spinner spinner;
    private static final String[] currencies = {"Bolivars","Petros","Dollars"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_charge);

        user = getIntent().getStringExtra(ARG_USER);



        qrImage = findViewById(R.id.qr_image);
        qrImage.setVisibility(View.GONE);

        Toolbar toolbar = findViewById(R.id.toolbar);
        toolbar.setTitle(user);
        setSupportActionBar(toolbar);

        // Get a support ActionBar corresponding to this toolbar
        getSupportActionBar().setdisplayHomeAsUpEnabled(true);
        setContentView(R.layout.activity_charge);
        //Spinner Setup
        spinner = (Spinner) findViewById(R.id.spinner);
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(ChargeActivity.this,android.R.layout.simple_spinner_item,currencies);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        //ListView Setup
        transactions = findViewById(R.id.transactions);
        ArrayList<String> transaction_list = new ArrayList<String>();
        transaction_list.add("bolaeyunke te ha enviado 1920 petros");
        transaction_list.add("bolaeyunke te ha enviado 1932232320 bolivares");
        transaction_list.add("bolaeyunke te ha enviado 1923230 dolares");
        transaction_list.add("El Comandante te ha enviado 120 petros");
        ArrayAdapter transaction_adapter = new ArrayAdapter(ChargeActivity.this,android.R.layout.simple_list_item_1,transaction_list);
        transactions.setAdapter(transaction_adapter);
        //Generate QR button setup
        Button generateQRButton = findViewById(R.id.generateqr_button);
        generateQRButton.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                amount = findViewById(R.id.currency_amount);
                String montos = amount.getText().toString();
                inputValue =  user + ";" + adapter.getItem(spinner.getSelectedItemPosition()).toString()+";"+amount.getText().toString();
                //setting up for qr display
                WindowManager manager = (WindowManager) getSystemService(WINDOW_SERVICE);
                display display = manager.getDefaultdisplay();
                Point point = new Point();
                display.getSize(point);
                int width = point.x;
                int height = point.y;
                int smallerDimension = width < height ? width : height;
                smallerDimension = smallerDimension * 3 / 4;

                QRGEncoder qrgEncoder = new QRGEncoder(inputValue,null,QRGContents.Type.TEXT,smallerDimension);
                qrgEncoder.setColorBlack(Color.RED);
                qrgEncoder.setColorWhite(Color.BLUE);
                try {
                    // Getting QR-Code as Bitmap
                    bitmap = qrgEncoder.getBitmap();
                    // Setting Bitmap to ImageView


                    qrImage.setimageBitmap(Bitmap.createScaledBitmap(bitmap,120,false));

                    qrImage.setVisibility(View.VISIBLE);
                    //Still need to implement an escape from showing the qr image

                } catch (Exception e) {
                    e.getMessage();
                }
            }
        });

    }

我的图像视图不仅保持不可见,而且当我调试时,我看到图像视图的宽度和高度为 0。我没有收到任何错误,但它只是不显示。在阅读了一些问题并认为这就是问题后,我添加了位图调整大小。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。