3 回答

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
URL對(duì)象中前而幾個(gè)方法都非常容易理解,而該對(duì)象提供的openStream()可以讀取該 URL資源的InputStream,通過該方法可以非常方便地讀取遠(yuǎn)程資源。
下面的程序示范如何通過URL類讀取遠(yuǎn)程資源:
1)只顯示網(wǎng)絡(luò)圖片
1)只顯示網(wǎng)絡(luò)圖片
引用圖片處理的java類:
package dujun.king.urlgetimage;
import java.io.InputStream;
import java.net.URL;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
public class MainActivity extends Activity {
Bitmap bitmap;
ImageView imageview;
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.what==0x9527) {
//顯示從網(wǎng)上下載的圖片
imageview.setImageBitmap(bitmap);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageview=(ImageView)findViewById(R.id.imageView1);
//創(chuàng)建并啟動(dòng)一個(gè)新線程用于從網(wǎng)絡(luò)上下載圖片
new Thread(){
@Override
public void run() {
try {
//創(chuàng)建一個(gè)url對(duì)象
URL url=new URL("http://www.baidu.com/img/bdlogo.png");
//打開URL對(duì)應(yīng)的資源輸入流
InputStream is= url.openStream();
//從InputStream流中解析出圖片
bitmap = BitmapFactory.decodeStream(is);
// imageview.setImageBitmap(bitmap);
//發(fā)送消息,通知UI組件顯示圖片
handler.sendEmptyMessage(0x9527);
//關(guān)閉輸入流
is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
查看API 可通過 JLabel構(gòu)造函數(shù),也可使用setIcon(Icon icon) 函數(shù),下面給出一個(gè)列子!
看樓主提問,主要想知道路徑怎么得來!
可使用
this.getClass().getResource("/")獲取的是class文件編譯后放置的絕對(duì)路徑。
this.getClass().getResource("/images/a.png");編譯地址/images/a.png (詳見代碼20-21)
這里圖片是放到src -- images -- a.png
有問題再追問,good luck!
import java.awt.BorderLayout; import java.awt.Container; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; public class MyImages extends JFrame { /** * @Fields serialVersionUID : Description */ private static final long serialVersionUID = 1060195358054863848L; /** * 創(chuàng)建一個(gè)新的實(shí)例 MyImages. */ public MyImages() { // TODO Auto-generated constructor stub Container c = this .getContentPane(); c.setLayout( new BorderLayout()); Icon icon = new ImageIcon( this .getClass().getResource( "/images/a.png" )); JLabel label = new JLabel( "aaa" , icon, JLabel.LEFT); c.add(label, BorderLayout.CENTER); this .setSize( 500 , 500 ); this .setVisible( true ); this .setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new MyImages(); } } |

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
讀取圖片可以有以下兩種方法:
①:ImageIO.read(new File("這里可以寫目錄,比如您提到的src/images/某張圖片名"));
②:new ImageIcon("目錄").getImage();
這兩個(gè)方法都返回一個(gè)圖片對(duì)象。可以用一個(gè)Image對(duì)象接收一下。
相對(duì)路徑是指您所運(yùn)行的程序的包 所在的文件夾開始的路徑。
一般來說,上面兩種讀取方法讀取時(shí),是從項(xiàng)目的目錄下開始找文件的。
所以,您把圖片放在src下的images包中,正確的讀取方法應(yīng)該是:
Image img=ImageIO.read(new File("src/images/圖片名"));或者
Image img=new ImageIcon("src/images/圖片名").getImage();
得到這樣一個(gè)Image對(duì)象后,就可以使用了。
添加回答
舉報(bào)