我想将某些URL中的图像动态添加到线性布局中。在运行这段代码时,我遇到了无法启动活动的错误
ComponentInfo:android.os.NetworkOnMainThreadException在com.example.star.example.CompinfoActivity.getBitmapFromURL(CompinfoActivity.java:70)com.example.star.example.CompinfoActivity.insert照片(CompinfoActivity.java:50)com.example.star.example.CompinfoActivity.on创建(CompinfoActivity.java:38)
请帮忙。这是我下面活动的代码。
public class CompinfoActivity extends AppCompatActivity {
Dialog dialog;
LinearLayout myGallery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_compinfo);
dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.activity_compinfopopup);
dialog.getWindow().getAttributes().width = AbsListView.LayoutParams.MATCH_PARENT;
dialog.getWindow().getAttributes().height = AbsListView.LayoutParams.WRAP_CONTENT;
dialog.show();
myGallery = (LinearLayout) dialog.findViewById(R.id.mygallery);
myGallery.addView(insertPhoto("http://example.com/a.png"));
myGallery.addView(insertPhoto("http://example.com/b.png"));
myGallery.addView(insertPhoto("http://example.com/c.png"));
myGallery.addView(insertPhoto("http://example.com/d.png"));
new MyTask().execute();
}
View insertPhoto(String path){
Bitmap bm;
bm = getBitmapFromURL(path);
LinearLayout layout = new LinearLayout(getApplicationContext());
layout.setLayoutParams(new AbsListView.LayoutParams(250, 250));
layout.setGravity(Gravity.CENTER);
ImageView imageView = new ImageView(getApplicationContext());
imageView.setLayoutParams(new AbsListView.LayoutParams(220, 220));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageBitmap(bm);
layout.addView(imageView);
return layout;
}
public static Bitmap getBitmapFromURL(String src) {
try {
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
试试这个
URL url = new URL("http://....");
Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
只要替换你的Url就行了
在android中调用此方法将Url转换为位图
public static Bitmap getBitmapFromURL(String url) {
try {
URL url = new URL(url);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap bitmapFrmUrl = BitmapFactory.decodeStream(input);
return bitmapFrmUrl;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
别忘了在AndroidManifest中添加INTERNET权限。xml
只需执行以下操作-
public class MyAsync extends AsyncTask<Void, Void, Bitmap>{
@Override
protected Bitmap doInBackground(Void... params) {
try {
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
现在要从url访问位图,请执行以下操作-
MyAsync obj = new MyAsync(){
@Override
protected void onPostExecute(Bitmap bmp) {
super.onPostExecute(bmp);
Bitmap bm = bmp;
LinearLayout layout = new LinearLayout(getApplicationContext());
layout.setLayoutParams(new AbsListView.LayoutParams(250, 250));
layout.setGravity(Gravity.CENTER);
ImageView imageView = new ImageView(getApplicationContext());
imageView.setLayoutParams(new AbsListView.LayoutParams(220, 220));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageBitmap(bm);
layout.addView(imageView);
}
};
然后最后执行AsynTask-
obj.execute();
问题内容: 我似乎找不到此问题的答案。如何在JavaScript中将URL参数字符串转换为JSON?我的意思是问是否有像这样的内置功能或可以完成这项工作的单线? 例: => 问题答案: 您可以创建一个将返回JSON对象的方法 演示:http://jsfiddle.net/jAGN5/
我似乎找不到这个问题的答案。如何在JavaScript中将URL参数字符串转换为JSON?我的意思是问是否有这样的内置函数或一行程序可以完成这项工作? =>
所以我的数据集有一些信息,按业务n日期如下: 我需要以下格式的数据:我如何转换它。我不想在我的输出数据集中使用多级 我尝试了以下语法: 我得到的结果如下: 当我打印列时,它不会将LOB显示为列。我的最终数据帧还应该包括业务,日期字段作为列,以便我可以加入这个数据帧与另一个业务数据帧
在我的项目中,我动态生成json,并将其放入中注意:键是动态的,所以我的响应如下所示: 但我预期的反应是: 如何在泽西取得预期的结果。pom.xml 如有任何帮助,我们将不胜感激!!!!
问题内容: 我的页面会生成这样的URL:如何将其转换为普通地址? 我将其用作的属性。 问题答案: 从JavaScript创建的URL 不能转换为“普通” URL。 一个URL并不是指在服务器上存在的数据,它是指数据您的浏览器目前在存储器中,当前页面。它在其他页面上将不可用,在其他浏览器中将不可用,并且在其他计算机上将不可用。 因此,通常来说,将URL 转换为“正常” URL 是没有意义的。如果要使
问题内容: 我有一个图像文件的Data-URL,必须将其传递给另一个函数。从Data-URL到BufferedImage的路径必须是一个byteArray。 我的方法如下: 问题是,它总是抛出UnknownImageFormatException异常,这意味着inputImage为null,这意味着ImageIO.read无法识别图像类型。 我使用ImageIO.getReaderFormatNa