android


Black screen when loading web image to Android


When loading an image from the web I am getting a black screen.
I took the page from the web turned it in to a canvas and then set it to the ImageView.
Now when I load it I am getting a black screen in the image.
Activity's code:
public class ImageActivity extends Activity {
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView i = (ImageView) findViewById(R.id.imageView1);
try {
String url = "http://www.rotoworld.com/images/headshots/NBA/1372.jpg";
Drawable image = ImageOperations(this, url);
i.setImageDrawable(image);
} catch (Exception ex) {
ex.printStackTrace();
}
i.setMinimumWidth(22);
i.setMinimumHeight(22);
i.setMaxWidth(22);
i.setMaxHeight(22);
}
private Drawable ImageOperations(Context ctx, String url) {
try {
InputStream is = (InputStream) this.fetch(url);
Drawable d = Drawable.createFromStream(is, "src");
return d;
} catch (MalformedURLException e) {
return null;
} catch (IOException e) {
return null;
}
}
public Object fetch(String address) throws MalformedURLException, IOException {
URL url = new URL(address);
Object content = url.getContent();
return content;
}
}
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="#string/hello" />
<ImageView
android:id="#+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="#drawable/ic_launcher" />
The usual reason for getting a black screen when opening an activity in android is that it takes to long to create the activity.
I think you should put the fetching of your image in a AsyncTask or similar.
Try this...
try
{
URL feedImage = new URL(imageUrl);
HttpURLConnection conn= (HttpURLConnection)feedImage.openConnection();
InputStream is = conn.getInputStream();
Bitmap img = BitmapFactory.decodeStream(is);
i.setImageBitmap(img);
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
Try this..it may helpful for you
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView imageView= (ImageView)findViewById(R.id.imageView1);
new loadImageTask().execute("http://www.rotoworld.com/images/headshots/NBA/1372.jpg");
}
public static Drawable LoadImageFromWeb(String url)
{
try
{
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "");
return d;
}
catch (Exception e)
{
return null;
}
}
public class loadImageTask extends AsyncTask<String, Void, Void>
{
Drawable imgLoad;
#Override
protected void onPreExecute()
{
super.onPreExecute();
}
#Override
protected Void doInBackground(String... params)
{
imgLoad = LoadImageFromWeb(params[0]);
return null;
}
#Override
protected void onPostExecute(Void result)
{
super.onPostExecute(result);
imageView.setVisibility(View.VISIBLE);
}
}
Here is how did it at the end...
Needed to use the Asynctask I also sen the html to a web page in order to retrieve the actual jpg from the web
String namesTr1 = pb;
System.out.println(">>>>NAMEBEFORE"+pb);
String nameminus1 = namesTr1.replace(' ','-' );
System.out.println(">>>>NAMEAFTERREPLACe"+nameminus1);
PGCalc pgcalc = new PGCalc();
String playerhtml="http://www.rotoworld.com/player/nba/1860/"+nameminus1+"/1";
System.out.println(">>>>Before JSOUP"+playerhtml);
//Getting html image from Jspoup
try {
imagehtml = pgcalc.getimage(playerhtml);
System.out.println(">>>>>>jsoupimagehtml"+imagehtml);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//Setting image in Imageview
try
{
URL feedImage = new URL(imagehtml);
HttpURLConnection conn= (HttpURLConnection)feedImage.openConnection();
InputStream is = conn.getInputStream();
Bitmap img;
return img = BitmapFactory.decodeStream(is);
//imageview1.setImageBitmap(img);
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return null;
}

Related Links

Only error showing is null, rss feed reader not working
Changing theme of an activity without recreating activity
Android preferenceScreen color
Revmob Unity3D SDK for Amazon
How to check whether the app is ever installed from google play account in android
Aligned Views: Change position of Anchor and update aligned View's position
response of server with json return a html tag
PushNotification.register using GCM is not receiving Registration Id
The type android.support.v4.app.Fragment cannot be resolved. It is indirectly referenced
Sony SW2 RegistrationInformation
Android, sqlite database finding two values in the two columns and the resulting value
Encode photos into (some) video format in Android
Implementing gallery with images from the web
Error reading web service with android
Handling screen dim/screen lock in android wear
Re-sizing of slate in Drawing app

Categories

HOME
android
batch-file
fabricjs
microsoftgraph
twitter-bootstrap-3
jpa
dns
angular2-material
3d
components
vxml
x264
spring-session
jax-ws
jtextpane
nfs
elasticsearch-5
google-schemas
activecollab
azure-iot-hub
powershell-v5.0
delphi-xe5
asp.net-core-webapi
string-concatenation
exit
easeljs
google-api-client
fat
entity-relationship-model
winexe
autodesk-designautomation
send
recurring-events
sql-server-2000
kodi
mailkit
jett
sammy.js
reactjs.net
getlasterror
navigator
xcode7.3
sessionstorage
flatmap
numberpicker
tcc
importerror
plan-9
posixct
podscms
context-sensitive-grammar
excel-dna
template-toolkit
node-request
omxplayer
webjars
segment-io
cfchart
rasterize
rewrite
flock
google-books
poppler
fuelcms
omnifaces
mraid
fail2ban
actionfilterattribute
phpldapadmin
gamekit
cosine-similarity
iiop
ignite-ui
alternate
drupal-nodes
workitem
insert-id
bjyauthorize
android-sdk-2.3
oracle-enterprise-linux
httponly
koken
stress
automationelement
listactivity
webdev.webserver
metaweblog
silent
addchild
entitykey
technical-debt

Resources

Encrypt Message