android自定义tablerow与imageview溢出tablerow

时间:2015-09-18 01:43:58

标签: android imageview tablelayout tablerow

我正在尝试创建一个tablelayout来显示一个用户的个人资料图片和他的名字。除了布局有线外,一切正常。图像视图溢出了tablerow。我设置了tablerow layout_height ="50dp"和iamgeview layout_margin="10dp"<?xml version="1.0" encoding="utf-8"?> <TableRow xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="70dp" android:orientation="horizontal" android:layout_marginBottom="1dp" android:background="#fff"> <ImageView android:layout_height="50dp" android:layout_width="50dp" android:id="@+id/pic" android:layout_marginTop="10dp" android:layout_marginLeft="10dp" android:background="#f00"/> <TextView android:layout_height="20dp" android:layout_width="wrap_content" android:layout_marginTop="25dp" android:layout_marginRight="25dp" android:id="@+id/value" android:textColor="#000" android:layout_alignParentRight="true" android:layout_weight="3.0" android:textAlignment="gravity" android:gravity="right" /> </TableRow> ,以便垂直集中图像。 tablerow xml:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#fff">
        <TableLayout android:id="@+id/contact_table"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#aaa">
        </TableLayout>
</ScrollView>

tablelayout xml:

table =(TableLayout)findViewById(R.id.contact_table);
                    LayoutInflater inflater = getLayoutInflater();
                    TableRow row = (TableRow)inflater.inflate(R.layout.profilerow, table, false);
                    ImageView tag = (ImageView)row.findViewById(R.id.pic);
                    new DownloadImageTask(tag).execute(me.getDp_address());
                    TextView value = (TextView)row.findViewById(R.id.value);
                    value.setText(me.getFirst_name()+" "+me.getLast_name());
                    table.addView(row);

                    TableRow row2 = (TableRow)inflater.inflate(R.layout.centertextrow,table ,false);
                    table.addView(row2);



private class DownloadImageTask extends AsyncTask<String,Void,Bitmap>{
        ImageView img;
        public DownloadImageTask(ImageView bmImage){
            this.img = bmImage;
        }
        @Override
        protected Bitmap doInBackground(String... urls) {
            String url_string = urls[0];
            Bitmap micoin = null;
            try {
                InputStream in = new java.net.URL(url_string).openStream();
                micoin = BitmapFactory.decodeStream(in);
            } catch (IOException e) {
                Log.i("michaellog","error a");
                //Log.e("michaellog",e.getMessage());
                e.printStackTrace();
            }
            return micoin;
        }

        @Override
        protected void onPostExecute(Bitmap bitmap) {
            super.onPostExecute(bitmap);
            img.setImageBitmap(bitmap);
        }
    }

java代码:

<html>
  <head>


  <title>StackOverflow Example</title>


  <style>
  .visible {visibility: visible}
  .hidden {visibility: hidden}
  </style>
  <script type="text/javascript">
  var visible_link = true;
  function Hide() {
      document.getElementById("my_div").className = "hidden";
      document.getElementById("my_button").value = "SHOW";
  }
  function Show() {

   
      document.getElementById("my_div").className = "visible";
      document.getElementById("my_button").value = "HIDE";
    
    
  }
 
  </script>


  </head>



  <body>

<center>


<iframe src="http://www.google.com" height=549 width=100% frameborder=0 name = "hello"></iframe>

<a href="http://www.google.com" target = "hello" onclick = "Show();">click to show below link</a>

    <div id="my_div" class="hidden">
      <a href="http://www.google.com" target="hello" onclick = "Hide();" >click me to hide</a>
    </div>


    
</center>  

</body>

</html>

这是一张图片:link

图像向下移动。

1 个答案:

答案 0 :(得分:0)

阿罗哈!

在创建我们的大学应用程序的表格视图中的youtube供稿列表时,我遇到了同样的问题。我从布局和你的布局中看到的唯一区别是我在创建的tableview单元格中添加了一个android:scaleType =“centerCrop”。这应该缩放您的图像以适应正确的区域。对于填充的表中的每个单元格,我也使用线性布局而不是tableRow类型。我也会在这里查看答案。 https://stackoverflow.com/a/15832564/877568

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/semesterButtonLL"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <ImageView android:layout_width="50dip" 
        android:id="@+id/image" 
        android:src="@drawable/icon72" 
        android:layout_height="50dip" 
        android:scaleType="centerCrop">
    </ImageView>
    <TextView android:text="TextView"
        android:id="@+id/text" 
        android:textColor="@color/usu_blue"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="left|center_vertical"
        android:textSize="20dip"
        android:layout_marginLeft="10dip">
    </TextView>
</LinearLayout>

至于你提供的代码,你所提供的数据一切正常,如果它在你提供的链接上显示图像,那么它可能就像将centerCrop添加到xml中的行一样简单。我希望这会有所帮助。