gpt4 book ai didi

android - 转换 TextView->Bitmap->ImageView,但没有显示任何内容

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:01:04 38 4
gpt4 key购买 nike

我开始了一个测试项目来解决这个问题。 main.xml 没有变化。我想创建一个小部件大小的 ImageView (80x100),其中包含从 TextView 转换而来的位图。是的,这听起来很迂回,但这只是为了测试;最后我希望 ImageView 有一个背景图像和多个 TextView。我不确定我到底做错了什么,但没有任何东西被推送到屏幕上。

在构造函数中声明 TextView/ImageView 并将其传递为“this”是否有问题?是不是我的layoutParams有问题?这是代码:

package com.doaf.testproject;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class TestProject extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

TextView tv = new TextView(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(80, 100);
tv.setLayoutParams(layoutParams);
tv.setText("testing 1 2 3");
tv.setTextColor(0xFFFFFF);
tv.setBackgroundColor(0x555555);

Bitmap testB;
testB = loadBitmapFromView(tv);

ImageView iv = new ImageView(this);
iv.setLayoutParams(layoutParams);
iv.setBackgroundColor(0x555555);
iv.setImageBitmap(testB);

setContentView(iv);
}

public static Bitmap loadBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap(80, 100, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, 80, 100);
v.draw(c);
return b;
}
}

感谢您提供的任何帮助。我是 Android 的新手,对这个很迷茫。

最佳答案

我认为它会占据整个屏幕,因为您没有诸如线性布局之类的容器,而后者又包含具有布局约束的 ImageView,因此 ImageView 会扩展以填充可用屏幕。试试这个:

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

TextView tv = new TextView(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(80, 100);
tv.setLayoutParams(layoutParams);
tv.setText("testing 1 2 3");
tv.setTextColor(Color.BLACK);
tv.setBackgroundColor(Color.TRANSPARENT);

Bitmap testB;

testB = Bitmap.createBitmap(80, 100, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(testB);
tv.layout(0, 0, 80, 100);
tv.draw(c);

ImageView iv = (ImageView)findViewById(R.id.menuIcon);
iv.setLayoutParams(layoutParams);
iv.setBackgroundColor(Color.GRAY);
iv.setImageBitmap(testB);
iv.setMaxHeight(80);
iv.setMaxWidth(80);
}

在你的 main.xml 文件中:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<ImageView android:id="@+id/menuIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />


</LinearLayout>

我不确定你想要实现什么,但我相信有更有效的方法来实现它。

关于android - 转换 TextView->Bitmap->ImageView,但没有显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4167593/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com