动态android布局背景
我在ListView中看到了这个片段 如何将背景设置为与ImageView中上载的图像中的背景相同,以便我可以使用从XML文件中提取的图像的相同背景动态填充每一行。 我的图像的Url链接位于我的XML文件中,我正在使用XML解析器提取该文件 目前,我从item_shadow.xml获得了一个白色背景(我想用我的布局填充):动态android布局背景,android,xml,listview,android-fragments,Android,Xml,Listview,Android Fragments,我在ListView中看到了这个片段 如何将背景设置为与ImageView中上载的图像中的背景相同,以便我可以使用从XML文件中提取的图像的相同背景动态填充每一行。 我的图像的Url链接位于我的XML文件中,我正在使用XML解析器提取该文件 目前,我从item_shadow.xml获得了一个白色背景(我想用我的布局填充): <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://s
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape
android:shape="rectangle">
<solid android:color="@android:color/darker_gray" />
<corners android:radius="5dp"/>
</shape>
</item>
<item android:right="1dp" android:left="1dp" android:bottom="2dp">
<shape
android:shape="rectangle">
<solid android:color="@android:color/white"/>
<corners android:radius="5dp"/>
</shape>
</item>
</layer-list>
ListView行由以下内容填充:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/item_shadow"
android:padding="10dp" >
<ProgressBar
android:id="@+id/progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
<ImageView
android:id="@+id/iconUrl"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true" />
</RelativeLayout>
这是我的片段:
public class Preporuceno extends Fragment {
private AppAdapter mAdapter;
private ListView siteList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.i("mobAppModel", "OnCreate()");
View rootView = inflater.inflate(R.layout.activity_preporuceno, container, false);
siteList = (ListView) rootView.findViewById(R.id.listView1);
siteList.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View v, int pos,long id) {
String url = mAdapter.getItem(pos).getstoreURL();
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});
if(isNetworkAvailable()){
Log.i("mobAppModel", "starting download Task");
AppDownloadTask download = new AppDownloadTask();
download.execute();
}else{
mAdapter = new AppAdapter(getActivity().getApplicationContext(), -1, XMLsourcePullParser.getmobAppModel(getActivity()));
siteList.setAdapter(mAdapter);
}
return rootView;
}
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
private class AppDownloadTask extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... arg0) {
//Download the file
try {
Downloader.DownloadFromUrl("https://dl.dropboxusercontent.com/s/te0c0s7y7zr79tm/kategorijeXML.xml", getActivity().openFileOutput("XMLsource.xml", Context.MODE_PRIVATE));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result){
//setup our Adapter and set it to the ListView.
Activity attached = getActivity();
if (attached != null) {
mAdapter = new AppAdapter(getActivity().getApplicationContext(), -1, XMLsourcePullParser.getmobAppModel(getActivity()));
siteList.setAdapter(mAdapter);
Log.i("mobAppModel", "adapter size = "+ mAdapter.getCount());}
}
}
}
公共类preproceno扩展片段{
私人AppAdapter mAdapter;
私有ListView站点列表;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
Log.i(“mobAppModel”、“OnCreate()”);
视图根视图=充气机。充气(R.layout.activity_prepropuceno,container,false);
siteList=(ListView)rootView.findViewById(R.id.listView1);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图v、整数位置、长id){
字符串url=mAdapter.getItem(pos.getstoreURL();
意向i=新意向(意向.行动\视图);
i、 setData(Uri.parse(url));
星触觉(i);
}
});
if(isNetworkAvailable()){
Log.i(“mobAppModel”,“开始下载任务”);
AppDownloadTask download=新建AppDownloadTask();
下载.execute();
}否则{
mAdapter=newAppAdapter(getActivity().getApplicationContext(),-1,XMLsourcePullParser.getmobAppModel(getActivity());
setAdapter(mAdapter);
}
返回rootView;
}
专用布尔值isNetworkAvailable(){
连接管理器连接管理器
=(ConnectivityManager)getActivity().getSystemService(Context.CONNECTIVITY_服务);
NetworkInfo activeNetworkInfo=connectivityManager.getActiveNetworkInfo();
返回activeNetworkInfo!=null&&activeNetworkInfo.isConnected();
}
私有类AppDownloadTask扩展了AsyncTask{
@凌驾
受保护的Void doInBackground(Void…arg0){
//下载该文件
试一试{
Downloader.DownloadFromUrl(“https://dl.dropboxusercontent.com/s/te0c0s7y7zr79tm/kategorijeXML.xml,getActivity().openFileOutput(“XMLsource.xml”,Context.MODE_PRIVATE));
}catch(filenotfounde异常){
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
//设置适配器并将其设置为ListView。
附加的活动=getActivity();
如果(已附加!=null){
mAdapter=newAppAdapter(getActivity().getApplicationContext(),-1,XMLsourcePullParser.getmobAppModel(getActivity());
setAdapter(mAdapter);
Log.i(“mobAppModel”,“adapter size=“+mAdapter.getCount());}
}
}
}
编辑编辑编辑
帮助我的解决方案是在ImageView中设置android:scaleType=“fitXY”。将膨胀的布局嵌套在另一个布局中,并提供该布局背景属性帮助我的解决方案是在ImageView中设置android:scaleType=“fitXY”。