我正在尝试创建一个为图片添加随机引用的Android应用。
一般过程如下:
我已经到了可以在ImageView中显示图像的地步。
我的引号列表存储在我的strings.xml
文件中。
答案 0 :(得分:6)
我在应用中做了类似的事情。使用画布。
我编辑了一段我的代码,实际上在背景上添加了几个其他图像。
代码肉:
private static Bitmap getPoster(...) {
Bitmap background = BitmapFactory.decodeResource(res, background_id)
.copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(background);
Typeface font = Typeface.createFromAsset(res.getAssets(), FONT_PATH);
font = Typeface.create(font, Typeface.BOLD);
Paint paint = new Paint();
paint.setTypeface(font);
paint.setAntiAlias(true);
paint.setColor(Color.WHITE);
paint.setStyle(Style.FILL);
paint.setShadowLayer(2.0f, 1.0f, 1.0f, Color.BLACK);
float fontSize = getFontSize(background.getWidth(), THE_QUOTE, paint); //You'll have to define a way to find a size that fits, or just use a constant size.
paint.setTextSize(fontSize);
canvas.drawText(THE_QUOTE, (background.getWidth() - paint.measureText(THE_QUOTE)) / 2,
background.getHeight() - FILLER_HEIGHT, paint); //You might want to do something different. In my case every image has a filler in the bottom which is 50px.
return background;
}
将您自己的版本放在一个类中,并为其提供图像ID和其他任何内容。它会返回一个位图,供您随意使用(在imageview中显示,让用户保存并设置为wallpape)。
答案 1 :(得分:1)
我知道几年前我用imagemagick为PC做了这个(保存带文字的图像)
似乎像imagemagick已被移植到android,所以我会开始深入研究它们。答案 2 :(得分:1)
确定!弗朗西斯科我的朋友,我有一个想法,虽然不是一个有效的代码('因为我不是很擅长)。所以,这是:
在onClickListener()
上实施ImageView
,如下所示:
ImageView iv = (ImageView)findViewById(R.id.imageview1);
iv.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
/** When I say do your stuff here, I mean read the user input and set your wallpaper here. I'm sorry that I don't really know how to save/set the wallpaper */
}
});
在阅读用户输入/生成随机引号时,您可以这样做:
您说您已经在strings.xml
文件中保存了引号。使用这些字符串的ID,我认为您可以实现switch
案例场景,使用java imports
- java.util.Scanner
和java.util.Random
。最终,在ImageView
onClickListener
中使用这些可以/应该产生所需的输出。
我知道我的答案太模糊了,但我有一种微弱的希望,它已经让你一分钟领先于你可以实施什么。我真的希望有比这更好的答案。如果没有,那么我希望这对你有所帮助,我也希望我不会把你带到错误的方向,因为这只是一个猜测。对不起,但这就是我的全部。