[英]Load from Image from XML to ImageView
I want to load an image from an XML file tag <image>
to the ImageView
. 我想将图像从XML文件标签
<image>
加载到ImageView
。
The layout file: 布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:clickable="false">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/projectImage" />
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/jobtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dip"
android:textSize="14sp"
android:textStyle="bold"
android:text="jobtitle">
</TextView>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/jobinfo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="11sp"
android:textStyle="normal"
android:text="jobinfo"
android:paddingLeft="10dp">
</TextView>
</LinearLayout>
</LinearLayout>
and the mainActivity: 和mainActivity:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container"
android:layout_width="match_parent" android:layout_height="match_parent"
tools:context=".MainActivity" tools:ignore="MergeRootFrame" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView" />
<ListView android:id="@+id/android:list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
</FrameLayout>
At this point i look up if the file already exists, if not, then download and parse it. 在这一点上,我查找文件是否已经存在,如果不存在,则下载并解析它。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File file = new File(this.getFilesDir(), "Arbeitsauftrag_Bootsbau_Meier_vom_20150216.kx_job");
if (file.exists()) {
XMLParser parser = new XMLParser();
Document doc = parser.getDomElement(readFromFile("Arbeitsauftrag_Bootsbau_Meier_vom_20150216.kx_job"));
NodeList nodeListProject = doc.getElementsByTagName(KEY_PROJECT);
NodeList nodeListTasks = doc.getElementsByTagName(KEY_TASK);
//Schleife für Aufgaben
for (int i = 0; i < nodeListTasks.getLength(); i++) {
HashMap<String, String> map = new HashMap<>();
Element e = (Element) nodeListTasks.item(i);
map.put(KEY_UUID_OBJ, parser.getValue(e, KEY_UUID_OBJ));
map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));
map.put(KEY_INFO, parser.getValue(e, KEY_INFO));
map.put(KEY_OBJECT, parser.getValue(e, KEY_OBJECT));
map.put(KEY_LOCATION, parser.getValue(e, KEY_LOCATION));
map.put(KEY_OBJECT_ID, parser.getValue(e, KEY_OBJECT_ID));
map.put(KEY_OBJECT_SNR, parser.getValue(e, KEY_OBJECT_SNR));
map.put(KEY_REGISTRATION_ID, parser.getValue(e, KEY_REGISTRATION_ID));
map.put(KEY_TASKIMAGE, parser.getValue(e, KEY_TASKIMAGE));
map.put(KEY_TASK_HEADLINE, parser.getValue(e, KEY_TASK_HEADLINE));
map.put(KEY_TASK_SUBJECT, parser.getValue(e, KEY_TASK_SUBJECT));
map.put(KEY_TASK_ACTION, parser.getValue(e, KEY_TASK_ACTION));
map.put(KEY_TASK_PRIORITY_COLOR, parser.getValue(e, KEY_TASK_PRIORITY_COLOR));
map.put(KEY_TASK_STATUS, parser.getValue(e, KEY_TASK_STATUS));
map.put(KEY_TASKIMAGE, parser.getValue(e,KEY_TASKIMAGE));
taskItems.add(map);
}
// Schleife für Auftragsinfos
for (int i = 0; i < nodeListProject.getLength(); i++) {
// Neue HashMap erstellen
HashMap<String, String> map = new HashMap<>();
Element e = (Element) nodeListProject.item(i);
// Jedes Kind-Knoten zur HashMap
map.put(KEY_UUID, parser.getValue(e, KEY_UUID));
map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
map.put(KEY_JOBTITLE, parser.getValue(e, KEY_JOBTITLE));
map.put(KEY_JOBINFO, parser.getValue(e, KEY_JOBINFO));
//Hashmap zur ArrayList hinzufügen
projectItems.add(map);
}
ListAdapter adapter = new SimpleAdapter(ListViewActivity.this, projectItems,
R.layout.list_item_projects,
new String[]{KEY_JOBTITLE, KEY_JOBINFO},
new int[]{R.id.jobtitle, R.id.jobinfo});
setListAdapter(adapter);
//file.delete();
} else {
DownloadXMLFiles dlxmlf = new DownloadXMLFiles();
dlxmlf.execute();
}
This method is for decoding the base64 string: 此方法用于解码base64字符串:
public static Bitmap decodeBase64(String input) {
byte[] decodedByte = Base64.decode(input, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
}
My ImageView
is not at the MainActivity
. 我的
ImageView
不在MainActivity
。
I'm looking how i can put the image from Base64
to Bitmap
and set it as Image on my ImageView
? 我正在寻找如何将图像从
Base64
放置到Bitmap
并将其设置为ImageView
上的Image?
PS my ImageView
isn't in the same Layout as my setContentView(R.layout.activity_main)
. PS我的
ImageView
与我的setContentView(R.layout.activity_main)
不在同一布局中。
Create following method to convert from encoded Base64 string to Bitmap 创建以下方法以从编码的Base64字符串转换为位图
Bitmap decodeBase64(String input) {
try {
byte[] decodedByte = Base64.decode(input, 0);
return BitmapFactory.decodeByteArray(decodedByte, 0,
decodedByte.length);
} catch (Exception e) {
return null;
}
}
Now use it as follows- 现在按如下方式使用它:
Bitmap imageBitmap = decodeBase64(strEncodedBitmap);
imageView.setImageBitmap(imageBitmap);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.