new出来的ImageView为何没有显示出来?

中才德创 2011-06-02 10:44:27
white是一幅png图。如何让按钮响应事件的时候,显示出来?

private Button.OnClickListener addClicked = new Button.OnClickListener() {
@Override
public void onClick(View v) {
ImageView iv_chess = new ImageView(Gobang.this);
iv_chess.setImageResource(R.drawable.white);
iv_chess.setVisibility(0);
Log.v(TAG, "addClicked");
}
};
...全文
578 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
b87936260 2011-06-16
  • 打赏
  • 举报
回复
Activity里面应该就有add方法吧
中才德创 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zyc13701469860 的回复:]
首先View类没有AddView这个方法。所以不可能用AddView来实现动态添加棋子的功能,即覆盖图片的功能。

要用SurfaceView,SurfaceHolder去画图,使用Canvas在该表面视图上画图。可以先画棋盘,然后指定坐标去画棋子。是可以画bitmap的。
这个和JAVA的GUI的paint原理差不多。
[/Quote]哦
中才德创 2011-06-04
  • 打赏
  • 举报
回复
如下的代码,能点一次增加一个图片了。不过有个问题:新增图片不在棋盘imageview_board上?

相当于加在了总布局的后面。


package com.demo.android.gobang;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class Gobang extends Activity {
private static final String TAG = "Gobang";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViews();
initialize();
setListensers();
}

private Button btn_step;
private ImageView iv_board;

private void findViews() {
btn_step = (Button)findViewById(R.id.botton_step);
iv_board = (ImageView)findViewById(R.id.imageview_board);
}

private void initialize() {
iv_board.setImageResource(R.drawable.board);
btn_step.setText(R.string.step);
}

private void setListensers() {
btn_step.setOnClickListener(addClicked);
}

private Button.OnClickListener addClicked = new Button.OnClickListener() {
@Override
public void onClick(View v) {
Log.v(TAG, "addClicked");
ImageView iv_chess = new ImageView(Gobang.this);
iv_chess.setImageResource(R.drawable.black);
iv_chess.setVisibility(View.VISIBLE);

//取得LinearLayout 物件
LinearLayout ll = (LinearLayout)findViewById(R.id.viewObj);
//将ImageView加入到LinearLayout中
if (null != ll) {
ll.addView(iv_chess);
}
}
};
}


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/viewObj"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/imageview_board"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
/>
<Button
android:id="@+id/botton_step"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
中才德创 2011-06-04
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ch_984326013 的回复:]
我晕!你这个值创建了一个ImageView对象,你还要把它添加到视图里面啊,就相当于一个Layout里面放一个ImageView。这样才能显示出来。
[/Quote]就是不知道代码具体如何写出来?
ch_984326013 2011-06-04
  • 打赏
  • 举报
回复
我晕!你这个值创建了一个ImageView对象,你还要把它添加到视图里面啊,就相当于一个Layout里面放一个ImageView。这样才能显示出来。
Mourinho 2011-06-04
  • 打赏
  • 举报
回复
首先View类没有AddView这个方法。所以不可能用AddView来实现动态添加棋子的功能,即覆盖图片的功能。

要用SurfaceView,SurfaceHolder去画图,使用Canvas在该表面视图上画图。可以先画棋盘,然后指定坐标去画棋子。是可以画bitmap的。
这个和JAVA的GUI的paint原理差不多。

中才德创 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 copico 的回复:]
要用addview方法
[/Quote]有没有trun-key solution?
copico 2011-06-03
  • 打赏
  • 举报
回复
要用addview方法
wenlin56 2011-06-03
  • 打赏
  • 举报
回复
没有 addView 到一个已显示的View上
wenzheng38 2011-06-02
  • 打赏
  • 举报
回复
iv_chess没有添加到当前Activity的布局文件中,所以无法显示
zhubo330513 2011-06-02
  • 打赏
  • 举报
回复
你可以看看你的Button有没有问题?
中才德创 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wk520gg 的回复:]
没添加吧
[/Quote]点击添加。何为“没添加”?
  • 打赏
  • 举报
回复
没添加吧
fanhoucheng 2011-06-02
  • 打赏
  • 举报
回复
下面有追加ImageButton 的代码,参考吧
LinearLayout ImageLLayout = new LinearLayout(app);
ImageLLayout.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT, 1);
ImageLLayout.setLayoutParams(llp);

ImageButton titleImgAdd = new ImageButton(app);
llp = new LinearLayout.LayoutParams((int) (40 * app.getDensity()), 60);
titleImgAdd.setLayoutParams(llp);

titleImgAdd.setImageResource(R.drawable.imgbtn_addtask);
titleImgAdd.setOnClickListener(titleAddTaskLis);

ImageLLayout.addView(titleImgAdd);
easycoola 2011-06-02
  • 打赏
  • 举报
回复
获取layout对象,然后调用layout.add(view);
中才德创 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wenzheng38 的回复:]
iv_chess没有添加到当前Activity的布局文件中,所以无法显示
[/Quote]点按钮增一幅图,再点按钮再增一幅图。
图越来越多,这样动态,如何添加到当前Activity的布局文件?

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧