0

私は単純な問題を抱えており、周りを検索しましたが、今のところ運がありません。(サウンドボードタイプのアプリケーション - 今のところボタンは1つだけ)

現在、ホーム画面の「サウンドボード」ボタンをクリックすると、ワンボタン試用サウンドボードにつながります。ページの上部に「画像を追加」ボタンがあります。ボタンの下には空白の画像ボタンがあります (塗りつぶされます)。「addimage」をクリックすると、画像を選択するギャラリーに移動します。選択後、イメージはイメージボタンの背景として設定されます (ソースは背景になります)。多くの試行錯誤の後、最終的にスケーリングの問題を解決しました(選択した画像が大きい場合、ボタン内で爆発しました)。

今私の問題は、選択した画像をボタンに「貼り付ける」ことです。戻るボタンをクリックしてボトムバーのホームに戻るか、アクションバーの戻るボタンをクリックすると (サウンドボードページから) --- そしてサウンドボードに戻ると --- 以前に選択した画像イメージボタンに設定されていましたが、もうありません(イメージボタンがリセットまたは再初期化されているようです)。別のページに移動したり終了したりした場合に、選択した画像を貼り付けて消去/クリアしないようにする方法はありますか? これがどのように処理されるかわかりません

ギャラリーから選択した画像を画像ボタンに設定し、何らかのスケーリングを実行するためのコードのスニペットが含まれています。写真を投稿できませんでした...でも、想像していただければ幸いです...とてもシンプルです。

ありがとう!

PS: 最終的な目標は、soundpool と raw フォルダー内の小さなオーディオ クリップを使用し、それを上の imagebutton (オーディオ出力) にリンクすることです。

        ImageButton imagebutton = (ImageButton) findViewById(R.id.imBut);

        Bitmap bitmaporg = BitmapFactory.decodeFile(picturePath);
        bitmaporg = Bitmap.createScaledBitmap(bitmaporg,350,350,true);

        imagebutton.setImageBitmap(bitmaporg);
4

2 に答える 2

0

イメージパスを取得したら、これを試して、パッケージ名を実際のパッケージ名に置き換えます。

 try {
                BufferedWriter writer = new BufferedWriter(new FileWriter("/data/data/packagename/" + "filename.txt"));

                writer.write(picturePath);

                writer.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

次に、imageviewを使用したアクティビティのonCreateでこれを試してください:

ImageButton imagebutton = (ImageButton) findViewById(R.id.imBut);
try {
            BufferedReader inputReader = new BufferedReader(new FileReader("/data/data/packagename/"+ "filename.txt"));
            String inputString;
while ((inputString = inputReader.readLine()) != null) {
Bitmap bitmaporg = BitmapFactory.decodeFile(inputString);
    bitmaporg = Bitmap.createScaledBitmap(bitmaporg,350,350,true);

    imagebutton.setImageBitmap(bitmaporg);
}
        } catch (IOException e) {
            e.printStackTrace();
        }
于 2013-03-03T05:42:09.720 に答える
0

後で使用できるように、ボタンのサイズ変更された画像をローカルに保存する必要があります。閉じて再起動した後でも。

ここで起こっているのは、アクティビティ (ボタン付き) の新しいインスタンスが初期化されていることです。これには、他のボタン インスタンスに適用されている画像に関する情報がありません。

必要なのは、アクティビティ(アクティビティのコンストラクター)を初期化するときに、画像が保存されているかどうかを確認し(保存するだけです)、画像がある場合は画像を適用することです。このSOの質問を参照してください。ちょっと気の利いた答えがあります。(特定のパスからデータを取得する方法は既に知っています)。

それ以外の場合、実行間でのみ画像を保持する場合は、画像ソースをグローバル変数として保存し、インテントを介して画像ソースを新しいアクティビティに渡すか、すでにグローバルであるため、新しいアクティビティで直接使用することができます変数。

グローバル変数については、次の SO の質問を調べてください。

Androidグローバル変数Android:グローバル変数を宣言する方法は?

于 2013-03-03T05:21:16.420 に答える