android 卡片视图布局:使用图片下方的空白 space
android card view layout: use the empty space under an image
我正在创建一个 android 新闻应用程序。第一个布局使用带有 cardview 的 recylcleview。在每一页中,顶部是新标题,下面是左侧的图像和右侧的新闻摘要。请参阅图片了解想法:
本意是新闻简报部分在图片右侧,但如果有的话,它也占据了图片下方的空space
我的布局 xml 看起来像:
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/cv"
card_view:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<TextView
android:id="@+id/news_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:textStyle="bold"
android:background="#FFFFFF"
android:padding="4dp"/>
<ImageView
android:layout_width="150dp"
android:layout_height="150dp"
android:id="@+id/image_thumb"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="16dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:id="@+id/news_body"
android:layout_toRightOf="@+id/image_thumb"
android:layout_below="@+id/news_title"
android:padding="4dp"/>
</RelativeLayout>
</android.support.v7.widget.CardView>
您可以使用FlowTextView
A TextView that extends RelativeLayout. The text will wrap around any child views inside the layout.
This widget has basic support for HTML using Html.fromHtml("< your markup ... />") It will recognise links, bold italic etc.
将 jitpack
添加到您的 build.gradle
存储库末尾:
repositories {
// ...
maven { url "https://jitpack.io" }
}
添加 dependency
:
compile 'com.github.deano2390:FlowTextView:2.0.5'
示例代码:如何使用 FlowTextView
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/cv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/news_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="#FFFFFF"
android:padding="4dp"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing e"
android:textStyle="bold" />
<uk.co.deanwild.flowtextview.FlowTextView
android:id="@+id/ftv"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image_thumb"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_margin="2dp"
android:src="@drawable/abc" />
</uk.co.deanwild.flowtextview.FlowTextView>
</LinearLayout>
</android.support.v7.widget.CardView>
JAVA 代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FlowTextView flowTextView = (FlowTextView) findViewById(R.id.ftv);
Spanned html = Html.fromHtml("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut dui pellentesque, auctor ipsum id, ultrices nisl. Donec a enim tincidunt, cursus ante in, ultricies arcu. Suspendisse luctus eget neque et dignissim. Mauris libero erat, tincidunt sed fermentum sit amet, porttitor eu nulla. Integer interdum consequat elementum. Ut dictum dignissim sollicitudin. In eu nisl vestibulum, commodo nisl non, fermentum tortor. Pellentesque mattis finibus leo, efficitur porta urna posuere nec.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut dui pellentesque, auctor ipsum id, ultrices nisl. Donec a enim tincidunt, cursus ante in, ultricies arcu. Suspendisse luctus eget neque et dignissim. Mauris libero erat, tincidunt sed fermentum sit amet, porttitor eu nulla. Integer interdum consequat elementum. Ut dictum dignissim sollicitudin. In eu nisl vestibulum, commodo nisl non, fermentum tortor. Pellentesque mattis finibus leo, efficitur porta urna posuere nec.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut dui pellentesque, auctor ipsum id, ultrices nisl. Donec a enim tincidunt, cursus ante in, ultricies arcu. Suspendisse luctus eget neque et dignissim. Mauris libero erat, tincidunt sed fermentum sit amet, porttitor eu nulla. Integer interdum consequat elementum. Ut dictum dignissim sollicitudin. In eu nisl vestibulum, commodo nisl non, fermentum tortor. Pellentesque mattis finibus leo, efficitur porta urna posuere nec.");
flowTextView.setText(html);
}
}
输出
试试下面的代码,您可以使用单独的图像视图标签通过 adjustBounds 进行调整
我正在创建一个 android 新闻应用程序。第一个布局使用带有 cardview 的 recylcleview。在每一页中,顶部是新标题,下面是左侧的图像和右侧的新闻摘要。请参阅图片了解想法:
本意是新闻简报部分在图片右侧,但如果有的话,它也占据了图片下方的空space
我的布局 xml 看起来像:
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/cv"
card_view:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<TextView
android:id="@+id/news_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:textStyle="bold"
android:background="#FFFFFF"
android:padding="4dp"/>
<ImageView
android:layout_width="150dp"
android:layout_height="150dp"
android:id="@+id/image_thumb"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="16dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:id="@+id/news_body"
android:layout_toRightOf="@+id/image_thumb"
android:layout_below="@+id/news_title"
android:padding="4dp"/>
</RelativeLayout>
</android.support.v7.widget.CardView>
您可以使用FlowTextView
A TextView that extends RelativeLayout. The text will wrap around any child views inside the layout.
This widget has basic support for HTML using Html.fromHtml("< your markup ... />") It will recognise links, bold italic etc.
将 jitpack
添加到您的 build.gradle
存储库末尾:
repositories {
// ...
maven { url "https://jitpack.io" }
}
添加 dependency
:
compile 'com.github.deano2390:FlowTextView:2.0.5'
示例代码:如何使用 FlowTextView
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/cv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/news_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="#FFFFFF"
android:padding="4dp"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing e"
android:textStyle="bold" />
<uk.co.deanwild.flowtextview.FlowTextView
android:id="@+id/ftv"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image_thumb"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_margin="2dp"
android:src="@drawable/abc" />
</uk.co.deanwild.flowtextview.FlowTextView>
</LinearLayout>
</android.support.v7.widget.CardView>
JAVA 代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FlowTextView flowTextView = (FlowTextView) findViewById(R.id.ftv);
Spanned html = Html.fromHtml("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut dui pellentesque, auctor ipsum id, ultrices nisl. Donec a enim tincidunt, cursus ante in, ultricies arcu. Suspendisse luctus eget neque et dignissim. Mauris libero erat, tincidunt sed fermentum sit amet, porttitor eu nulla. Integer interdum consequat elementum. Ut dictum dignissim sollicitudin. In eu nisl vestibulum, commodo nisl non, fermentum tortor. Pellentesque mattis finibus leo, efficitur porta urna posuere nec.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut dui pellentesque, auctor ipsum id, ultrices nisl. Donec a enim tincidunt, cursus ante in, ultricies arcu. Suspendisse luctus eget neque et dignissim. Mauris libero erat, tincidunt sed fermentum sit amet, porttitor eu nulla. Integer interdum consequat elementum. Ut dictum dignissim sollicitudin. In eu nisl vestibulum, commodo nisl non, fermentum tortor. Pellentesque mattis finibus leo, efficitur porta urna posuere nec.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut dui pellentesque, auctor ipsum id, ultrices nisl. Donec a enim tincidunt, cursus ante in, ultricies arcu. Suspendisse luctus eget neque et dignissim. Mauris libero erat, tincidunt sed fermentum sit amet, porttitor eu nulla. Integer interdum consequat elementum. Ut dictum dignissim sollicitudin. In eu nisl vestibulum, commodo nisl non, fermentum tortor. Pellentesque mattis finibus leo, efficitur porta urna posuere nec.");
flowTextView.setText(html);
}
}
输出
试试下面的代码,您可以使用单独的图像视图标签通过 adjustBounds 进行调整