2013-03-20 78 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

沒有找到圖片需要身份證。