动态android布局背景

动态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

我在ListView中看到了这个片段

如何将背景设置为与ImageView中上载的图像中的背景相同,以便我可以使用从XML文件中提取的图像的相同背景动态填充每一行。 我的图像的Url链接位于我的XML文件中,我正在使用XML解析器提取该文件

目前,我从item_shadow.xml获得了一个白色背景(我想用我的布局填充):

<?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”。