android如何从drawable中获取id的图像

时间:2022-11-23 11:04:24

This is my code :

这是我的代码:

package androboy.unsurkimia;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;

public class Main5Activity extends Activity {

LinearLayout vert;
String data;
ScrollView sv;
FileInputStream fis = null;
BufferedReader freader = null;
TextView tv;
ImageView iv;
Integer gambar;
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_main5);

    sv = new ScrollView(this);
    sv.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
    vert = new LinearLayout(this);
    vert.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
    vert.setOrientation(LinearLayout.VERTICAL);
    sv.addView(vert);

    intent = new Intent();
    tv = new TextView(this);
    iv = new ImageView(this);
    data = getIntent().getExtras().getString("data");

    try
    {
        fis = openFileInput("kimia.txt");

        freader = new BufferedReader(new InputStreamReader(fis));
        String baris = "";
        while((baris =freader.readLine()) != null)
        {
            String u[]=baris.split("#");
            if(u[0].equalsIgnoreCase(data))
            {
                tv.setText(" Simbol : "+u[0]+"\n Nama Unsur : "+u[1]+"\n Kegunaan : "+u[2]+"\n Jenis : "+u[3]+"\n Bahaya : "+u[4]+"\n Gambar bok : "+u[5]);
                gambar = Integer.parseInt(u[5]);
                iv.setImageResource(gambar);
            }
        }
        fis.close();
    }catch (Exception e) {
        // TODO: handle exception
    }
    vert.addView(tv);
    vert.addView(iv);
    this.setContentView(sv);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main5, menu);
    return true;
}

}

And this is the kimia.txt file :

这是kimia.txt文件:

H#Hidrogen#Sebagai bahan hidrogenasi#non logam#Penyalahgunaan bom hidrogen dan meledaknya gas hidrogen yang dikarenakan sifat hidrogen mudah terbakar dan meledak#R.drawable.h1
Li#Litium#Litium digunakan sebagai bahan campuran logam, sintesis senyawa organik dan aplikasi nuklir, bahan anoda pada baterai#Logam Alkali#Lithium menyebabkan luka bakar yang serius, terutama ketika kontak dengan kulit lembab#R.drawable.h2
Na#Natrium#Logam ini dapat di gunakan untuk memperbaiki struktur beberapa campuran logam, dan untuk memurnikan logam cair#Logam Alkali#Konsumsi sejumlah besar natrium dapat menyebabkan tekanan darah tinggi#R.drawable.h3
K#Kalium#Digunakan untuk pupuk#Logam Alkali#Radiasi dari kalium tidak terlalu berbahaya#R.drawable.h4
Rb#Rubidium#Digunakan untuk batery super tipis, sebagai bahan bakar mesin ion untuk pesawat antariksa#Logam Alkali#Apabila bereaksi dengan air dapat menyebabkan kebakaran#R.drawable.h5
Cs#Sesium#Sebagai katalis di hydrogenasi senyawa-senyawa tertentu#Logam Alkali#Unsur ini sedikit beracun  karena merupakan bahan berbahaya sebagai logam dan radioisotop yang menyajikan risiko kesehatan yang tinggi dalam kasus kebocoran radiasi#R.drawable.h6
Fr#Fransium#Digunakan untuk menentukan kadar Aktinum, digunakan untuk mempelajari organ tubuh tikus#R.drawable.h7
Be#Berilium#Berilium juga digunakan sebagai alloying agent dalam produksi tembaga berilium, yang banyak digunakan untuk per, kontak listrik, elektroda las dan alat-alat lainnya yang didesain untuk tidak memancarkan percikan api#Logam Alkali Tanah#Berilium dan garam-garamnya sangat beracun dan harus ditangani secara sangat hati-hati. R.drawable.h8
Mg#Magnesium#Sebagai bahan konstruksi pesawat dan missile, Magnesite digunakan untuk refractory, sebagai batu bata dan lapisan di tungku-tungku pemanas#Logam Alkali Tanah#Kebakaran dapat dengan mudah terjadi, sehingga magnesium harus ditangani secara hati-hati. Terutama jika logam ini dalam keadaan terbelah-belah secara halus#R.drawable.h9
Ca#Calsium#Digunakan sebagai agen pencampur logam aluminium, berilium, tembaga, timbal, dan campuran logam magnesium#Logam Alkali Tanah#Konsumsi kalsium secara berlebihan dapat memicu kanker prostat#R.drawable.h10
Sr#Stronsium#Digunakan untuk bahan dasar produksi gelas kaca dan tabung tv berwarna#Logam Alkali#Dalam bentuk murni strontium sangat reaktif dengan combusts udara dan spontan, karena itu dianggap bahaya kebakaran#R.drawable.h11
Ba#Barium#Digunakan sebagai agen pemberat dalam fluida pengebor sumur minyak dan digunakan dalam pembuatan karet#Logam Alkali Tanah#Apabila dikonsumsi manusia dapat meningkatkan tekanan darah#R.drawable.h12
Ra#Radium#Digunakan dalam memproduksi cat yang menyala dengan sendirinya, digunakan untuk terapi kanker#Logam Alkali Tanah#Radium, jika tertelan, terhirup ataupun terekspos pada tubuh menjadi sangat berbahaya dan dapat menyebabkan kanker#R.drawable.h13

I have put my images on /res/drawablehdpi with the same id from that kimia.txt (h1, h2 and so on). Now my question is HOW to show that image from drawable when i run my application.

我已将我的图像放在/ res / drawablehdpi上,其中包含来自kimia.txt(h1,h2等)的相同ID。现在我的问题是如何在运行我的应用程序时显示来自drawable的图像。

2 个解决方案

#1


0  

This should work:

这应该工作:

int resID = getResources().getIdentifier("androboy.unsurkimia:drawable/h1", null, null);
iv.setImageResource(resID);

#2


0  

Every image in drawable folder can accessed by its name itself . There is no need of id. You can set the image as

可绘制文件夹中的每个图像都可以通过其名称本身访问。不需要id。您可以将图像设置为

R.drawable.imagename

R.drawable.imagename

No need of id for images .

不需要id用于图像。

#1


0  

This should work:

这应该工作:

int resID = getResources().getIdentifier("androboy.unsurkimia:drawable/h1", null, null);
iv.setImageResource(resID);

#2


0  

Every image in drawable folder can accessed by its name itself . There is no need of id. You can set the image as

可绘制文件夹中的每个图像都可以通过其名称本身访问。不需要id。您可以将图像设置为

R.drawable.imagename

R.drawable.imagename

No need of id for images .

不需要id用于图像。