2013-03-20 124 views
-2

获得图像这是我的代码:机器人如何从ID在绘制

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; 
} 

} 

这是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 

我已经把我的图片上/ RES/drawablehdpi与kimia.txt(h1,h2等)中的id相同。现在我的问题是如何在我运行我的应用程序时从drawable中显示该图像。

+0

什么是与现有的代码,你可以介绍一下情况? drawable严格保存所有drwables,如Images和xml文件,在其中添加文本文件不是一个好的编码练习 – Triode 2013-03-20 14:59:45

+0

'R.drawable.id' – Alpay 2013-03-20 15:00:17

+0

String u [] = baris.split(“#”) ; Kegunaan:“+”[+] [+] [+] [+] [n] u [2] +“\ n Jenis:”+ u [3] +“\ n Bahaya:”+ u [4] +“\ n Gambar bok:”+ u [5]); gambar = Integer.parseInt(u [5]); iv.setImageResource(gambar); } |有了这段代码,我可以从kimia.txt获取字符串。它显示在我的模拟器上的结果,但没有与图像,所以如何获取/显示我的图像从drawable-hdpi与该txt文件(R.drawable.h1等等), – 2013-03-20 15:10:14

回答

0

这应该工作:

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

相同的ID谢谢,它的工作,你是一个拯救生命的人..... – 2013-03-20 15:28:29

0

可绘制文件夹中的每个图像都可以通过其名称本身进行访问。不需要身份证。 您可以将图像作为

R.drawable.imagename

没有找到图片需要身份证。