此屏幕截图是在Marshmallow中拍摄的
这个是在果冻豆中拍摄的,图像没有显示,菜单中的文字不可见
我有一个使用Cardview作为父视图的布局。
它由图像和文本组成。 现在布局在Android M及以上版本的设备上运行良好,但在较低版本(如Jellybean)中,图像显示不正确。它们变小并且不完全匹配卡片视图
这是我的布局XML文件:
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="3dp"
app:cardPreventCornerOverlap="false"
android:elevation="2dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<android.support.v7.widget.CardView
android:layout_width="80dp"
android:layout_height="80dp">
<ImageView
android:id="@+id/home_news_image"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center_vertical"
android:scaleType="centerCrop"
android:src="@drawable/jesus" />
</android.support.v7.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/home_title_parish_news"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:paddingLeft="1dp"
android:text="Christmas Celebration"
android:textSize="14dp"
android:textStyle="bold" />
<TextView
android:id="@+id/home_short_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:padding="3dp"
android:text="hi this is to tell thlkdsa asdsag slk sg sdg sdgjs gsd gsg jglsgja gasjggjasg asgjasgj sgjasg g g"
android:textSize="12dp" />
<TextView
android:id="@+id/home_date_published"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:gravity="right|bottom"
android:padding="3dp"
android:text="10/10/2010"
android:textSize="8dp" />
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
这是我初始化布局和视图的适配器
public class MenuAdapter extends BaseAdapter {
Context mContext;
ArrayList<MenuModel> list;
String img;
public MenuAdapter(Context c, ArrayList<MenuModel> list) {
mContext = c;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View grid;
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (view == null) {
grid = inflater.inflate(R.layout.home_grid_menu, null);
TextView textView = (TextView) grid.findViewById(R.id.home_grid_text);
ImageView imageView = (ImageView) grid.findViewById(R.id.home_grid_image);
textView.setText(list.get(i).getMenuName());
imageView.setImageResource(list.get(i).getMenuImage());
} else {
grid = (View) view;
}
return grid;
}
}
此外,如果我在图像下放置文字,则文字不可见。
请建议我如何去做。
我希望现在能得到一些解决方案
答案 0 :(得分:2)
首先你需要从android中的assets文件夹中读取文件这里是如何从assets文件夹中读取html文件的例子
InoutInputStream is = getAssets().open("yourfile.html");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
String str = new String(buffer);
你现在需要在字符串中有html文件,你需要使用HTML.fromhtml从html文件中获取文本。
String htmltext=Html.fromHtml(Html.fromHtml(str).toString())
如果你想分享html文本,那么你可以使用android intent
分享文本 Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Sharing html Text");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, htmltext);
startActivity(Intent.createChooser(sharingIntent, "Select"));
答案 1 :(得分:0)
卡片视图正常启动棒棒糖,它们具有向后支持但渲染通常不一样。
对于特定问题,请附上两个屏幕的图像